Sobes.tech
Junior

Koja je razlika između metoda execute, executeQuery i executeUpdate?

sobes.tech АИ

Одговор од АИ

  • executeQuery(): Koristi se za izvršavanje SQL operatora koji vraćaju jedinstveni skup rezultata (npr. operatori SELECT). Vraća objekat ResultSet.
  • executeUpdate(): Koristi se za izvršavanje SQL operatora koji menjaju bazu podataka i vraćaju broj ažuriranih redova (npr. INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE). Vraća int.
  • execute(): Više svestran metod. Može izvršiti bilo koji tip SQL operatora. Vraća boolean koji ukazuje da li je vraćen ResultSet. Ako je true, rezultat je ResultSet. Ako je false, rezultat je broj ažuriranih redova. Za dobijanje stvarnog rezultata potrebno je koristiti getResultSet() ili getUpdateCount().
Metod Svrha Vraćena vrednost Primer upotrebe
executeQuery Izvršavanje SELECT ResultSet Dobijanje podataka iz tabele.
executeUpdate Izvršavanje INSERT, UPDATE, DELETE, DDL int (broj izmenjenih redova) Dodavanje, izmena ili brisanje zapisa; kreiranje ili brisanje tabela.
execute Bilo koji SQL operator boolean (ako je vraćen ResultSet, true) Kada tip operatora nije unapred poznat ili operator može da vrati i podatke i broj.

Primer upotrebe execute():

// Pretpostavlja se da je statement već kreiran
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");

if (isResultSet) {
    // Obrada ResultSet
    try (ResultSet rs = statement.getResultSet()) {
        while (rs.next()) {
            // Čitanje podataka
        }
    }
} else {
    // Obrada broja ažuriranih redova
    int updateCount = statement.getUpdateCount();
    // Obrada updateCount
}