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. operatoriSELECT). Vraća objekatResultSet.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ćaint.execute(): Više svestran metod. Može izvršiti bilo koji tip SQL operatora. Vraćabooleankoji ukazuje da li je vraćenResultSet. Ako jetrue, rezultat jeResultSet. Ako jefalse, rezultat je broj ažuriranih redova. Za dobijanje stvarnog rezultata potrebno je koristitigetResultSet()iligetUpdateCount().
| 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
}