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, operatoriSELECT). Restituisce un oggettoResultSet.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 unint.execute(): Metodo più versatile. Può eseguire qualsiasi tipo di operatore SQL. Restituisce unbooleanche indica se è stato restituito unResultSet. Setrue, il risultato è unResultSet. Sefalse, il risultato è il numero di righe aggiornate. Per ottenere il risultato effettivo, è necessario usaregetResultSet()ogetUpdateCount().
| 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
}