Junior
Qual é a diferença entre os métodos execute, executeQuery e executeUpdate?
sobes.tech IA
Resposta da IA
executeQuery(): Usado para executar operadores SQL que retornam um conjunto de resultados único (por exemplo, operadoresSELECT). Retorna um objetoResultSet.executeUpdate(): Usado para executar operadores SQL que modificam a base de dados e retornam o número de linhas atualizadas (por exemplo,INSERT,UPDATE,DELETE,CREATE TABLE,DROP TABLE). Retorna umint.execute(): Método mais versátil. Pode executar qualquer tipo de operador SQL. Retorna umbooleanindicando se umResultSetfoi retornado. Setrue, o resultado é umResultSet. Sefalse, o resultado é o número de linhas atualizadas. Para obter o resultado real, é necessário usargetResultSet()ougetUpdateCount().
| Método | Propósito | Valor retornado | Exemplo de uso |
|---|---|---|---|
executeQuery |
Execução de SELECT |
ResultSet |
Obter dados de uma tabela. |
executeUpdate |
Execução de INSERT, UPDATE, DELETE, DDL |
int (número de linhas modificadas) |
Adicionar, modificar ou eliminar registos; criar ou eliminar tabelas. |
execute |
Qualquer operador SQL | boolean (true se um ResultSet foi retornado) |
Quando o tipo de operador não é conhecido de antemão ou o operador pode devolver dados e contagem. |
Exemplo de uso de execute():
// Assume-se que a declaração já foi criada
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");
if (isResultSet) {
// Processar ResultSet
try (ResultSet rs = statement.getResultSet()) {
while (rs.next()) {
// Ler dados
}
}
} else {
// Processar o número de linhas atualizadas
int updateCount = statement.getUpdateCount();
// Processar updateCount
}