Sobes.tech
Junior

Qual è la differenza tra i metodi execute, executeQuery e executeUpdate?

sobes.tech AI

Risposta dell'AI

  • executeQuery(): Utilizzato per eseguire operatori SQL che restituiscono un set di risultati singolo (ad esempio, operatori SELECT). Restituisce un oggetto ResultSet.
  • executeUpdate(): Utilizzato per eseguire operatori SQL che modificano il database e restituiscono il numero di righe aggiornate (ad esempio, INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE). Restituisce un int.
  • execute(): Metodo più versatile. Può eseguire qualsiasi tipo di operatore SQL. Restituisce un boolean che indica se è stato restituito un ResultSet. Se true, il risultato è un ResultSet. Se false, il risultato è il numero di righe aggiornate. Per ottenere il risultato effettivo, è necessario usare getResultSet() o getUpdateCount().
Metodo Scopo Valore restituito Esempio di utilizzo
executeQuery Esecuzione di SELECT ResultSet Ottenere dati da una tabella.
executeUpdate Esecuzione di INSERT, UPDATE, DELETE, DDL int (numero di righe modificate) Aggiungere, modificare o eliminare record; creare o eliminare tabelle.
execute Qualsiasi operatore SQL boolean (true se è stato restituito un ResultSet) Quando il tipo di operatore non è noto in anticipo o l'operatore può restituire dati e conteggio.

Esempio di utilizzo di execute():

// Si presume che la dichiarazione sia già creata
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");

if (isResultSet) {
    // Elaborazione ResultSet
    try (ResultSet rs = statement.getResultSet()) {
        while (rs.next()) {
            // Lettura dei dati
        }
    }
} else {
    // Elaborazione del numero di righe aggiornate
    int updateCount = statement.getUpdateCount();
    // Elaborazione di updateCount
}