Solución:
¿Qué quieren decir con “uno o más objetos ResultSet”?
El javadoc para el execute
el método dice esto:
“Ejecuta la instrucción SQL dada, que puede devolver varios resultados. En algunas situaciones (poco comunes), una sola instrucción SQL puede devolver múltiples conjuntos de resultados y / o actualizar recuentos. Normalmente, puede ignorar esto a menos que esté (1) ejecutando un procedimiento almacenado que sabe que puede devolver múltiples resultados o (2) está ejecutando dinámicamente una cadena SQL desconocida.“
Eso lo explica bastante bien. A veces, una consulta puede generar más de una ResultSet
.
Si es así, ¿cómo es posible administrarlos una vez que se obtiene una matriz de ResultSet?
No estoy seguro de a qué te refieres, pero:
- no puede obtenerlos como una matriz: debe obtenerlos uno a la vez, y
- podría poner los ResultSets en una matriz …
No es (al menos para mí) el objetivo de st.execute (sql) que también puede devolver un int como si fuera una tabla actualizada.
Un uso de execute
es ejecutar una declaración SQL si no sabe si es una consulta, una actualización (de algún tipo) … o algo más que potencialmente entregue múltiples conjuntos de resultados. Es una generalización de executeQuery()
y executeUpdate()
…
ejecución booleana ():
Ejecuta la instrucción SQL en este objeto Instrucción preparada, que puede ser cualquier tipo de instrucción SQL.
ResultSet executeQuery ():
Ejecuta la consulta SQL en este objeto Instrucción preparada y devuelve el objeto ResultSet generado por la consulta.
int executeUpdate ():
Ejecuta la instrucción SQL en este objeto Instrucción preparada, que debe ser una instrucción SQL INSERT, UPDATE o DELETE; o una declaración SQL que no devuelve nada, como una declaración DDL.
El mejor lugar para encontrar respuestas a preguntas como esta son los Javadocs: Aquí
ejecutar (): El método utilizado para todos los tipos de sentencias SQL, es decir, devuelve un valor booleano de VERDADERO o FALSO. Si el método devuelve TRUE, devuelve el objeto ResultSet y FALSE devuelve el valor int.
executeUpdate (): Este método se utiliza para la ejecución de la declaración DML (INSERT, UPDATE y DELETE) que es un valor de retorno int, recuento de las filas afectadas.
ejecutar la solicitud() : Este método se utiliza para recuperar datos de la base de datos mediante la consulta SELECT. Este método devuelve el objeto ResultSet que devuelve los datos de acuerdo con la consulta.