Junior
¿Cuál es la diferencia entre los métodos execute, executeQuery y executeUpdate?
sobes.tech AI
Respuesta de la IA
executeQuery(): Se utiliza para ejecutar operadores SQL que devuelven un conjunto de resultados único (por ejemplo, operadoresSELECT). Devuelve un objetoResultSet.executeUpdate(): Se utiliza para ejecutar operadores SQL que modifican la base de datos y devuelven el número de filas actualizadas (por ejemplo,INSERT,UPDATE,DELETE,CREATE TABLE,DROP TABLE). Devuelve unint.execute(): Método más versátil. Puede ejecutar cualquier tipo de operador SQL. Devuelve unbooleanque indica si se devolvió unResultSet. Si estrue, el resultado es unResultSet. Si esfalse, el resultado es el número de filas actualizadas. Para obtener el resultado real, es necesario usargetResultSet()ogetUpdateCount().
| Método | Propósito | Valor devuelto | Ejemplo de uso |
|---|---|---|---|
executeQuery |
Ejecución de SELECT |
ResultSet |
Obtener datos de una tabla. |
executeUpdate |
Ejecución de INSERT, UPDATE, DELETE, DDL |
int (número de filas modificadas) |
Añadir, modificar o eliminar registros; crear o eliminar tablas. |
execute |
Cualquier operador SQL | boolean (true si se devolvió ResultSet) |
Cuando el tipo de operador no se conoce de antemano o el operador puede devolver datos y conteo. |
Ejemplo de uso de execute():
// Se asume que la declaración ya está creada
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");
if (isResultSet) {
// Procesar ResultSet
try (ResultSet rs = statement.getResultSet()) {
while (rs.next()) {
// Leer datos
}
}
} else {
// Procesar el número de filas actualizadas
int updateCount = statement.getUpdateCount();
// Procesar updateCount
}