Sobes.tech
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, operatorii SELECT). Returnează un obiect ResultSet.
  • 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ă un int.
  • execute(): O metodă mai versatilă. Poate executa orice tip de operator SQL. Returnează un boolean care indică dacă a fost returnat un ResultSet. Dacă true, rezultatul este un ResultSet. Dacă false, rezultatul este numărul de rânduri actualizate. Pentru a obține rezultatul real, trebuie folosit getResultSet() sau getUpdateCount().
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
}