Junior
Care este diferența dintre metodele execute, executeQuery și executeUpdate?
sobes.tech AI
Răspuns de la AI
executeQuery(): Folosit pentru executarea operatorilor SQL care returnează un singur set de rezultate (de exemplu, operatoriiSELECT). Returnează un obiectResultSet.executeUpdate(): Folosit pentru executarea operatorilor SQL care modifică baza de date și returnează numărul de rânduri actualizate (de exemplu,INSERT,UPDATE,DELETE,CREATE TABLE,DROP TABLE). Returnează unint.execute(): O metodă mai versatilă. Poate executa orice tip de operator SQL. Returnează unbooleancare indică dacă a fost returnat unResultSet. Dacătrue, rezultatul este unResultSet. Dacăfalse, rezultatul este numărul de rânduri actualizate. Pentru a obține rezultatul real, trebuie folositgetResultSet()saugetUpdateCount().
| Metodă | Scop | Valoare returnată | Exemplu de utilizare |
|---|---|---|---|
executeQuery |
Executarea SELECT |
ResultSet |
Obținerea datelor dintr-un tabel. |
executeUpdate |
Executarea INSERT, UPDATE, DELETE, DDL |
int (numărul de rânduri modificate) |
Adăugarea, modificarea sau ștergerea înregistrărilor; crearea sau ștergerea tabelelor. |
execute |
Orice operator SQL | boolean (true dacă a fost returnat un ResultSet) |
Când tipul operatorului nu este cunoscut în prealabil sau operatorul poate returna atât date, cât și numărătoare. |
Exemplu de utilizare a execute():
// Se presupune că declarația este deja creată
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");
if (isResultSet) {
// Procesarea ResultSet
try (ResultSet rs = statement.getResultSet()) {
while (rs.next()) {
// Citirea datelor
}
}
} else {
// Procesarea numărului de rânduri actualizate
int updateCount = statement.getUpdateCount();
// Procesarea updateCount
}