Sobes.tech
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, operadores SELECT). Retorna um objeto ResultSet.
  • 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 um int.
  • execute(): Método mais versátil. Pode executar qualquer tipo de operador SQL. Retorna um boolean indicando se um ResultSet foi retornado. Se true, o resultado é um ResultSet. Se false, o resultado é o número de linhas atualizadas. Para obter o resultado real, é necessário usar getResultSet() ou getUpdateCount().
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
}