Junior
Kuo skiriasi execute, executeQuery ir executeUpdate metodai?
sobes.tech AI
Atsakymas iš AI
executeQuery(): Naudojama vykdyti SQL komandas, kurios grąžina vieną rezultatų rinkinį (pvz.,SELECT). GrąžinaResultSetobjektą.executeUpdate(): Naudojama vykdyti SQL komandas, kurios keičia duomenų bazę ir grąžina atnaujintų eilučių skaičių (pvz.,INSERT,UPDATE,DELETE,CREATE TABLE,DROP TABLE). Grąžinaint.execute(): Labai universalus metodas. Gali vykdyti bet kokio tipo SQL komandą. Grąžinaboolean, kuris rodo, ar buvo grąžintasResultSet. Jeitrue, rezultatas yraResultSet. Jeifalse, rezultatas yra atnaujintų eilučių skaičius. Norint gauti faktinį rezultatą, reikia naudotigetResultSet()arbagetUpdateCount().
| Metodas | Paskirtis | Grąžinama reikšmė | Pavyzdys naudojimo |
|---|---|---|---|
executeQuery |
SELECT vykdymas |
ResultSet |
Duomenų gavimas iš lentelės. |
executeUpdate |
INSERT, UPDATE, DELETE, DDL vykdymas |
int (pakeistų eilučių skaičius) |
Įrašų pridėjimas, keitimas ar šalinimas; lentelių kūrimas ar šalinimas. |
execute |
Bet kokia SQL komanda | boolean (jei grąžintas ResultSet, true) |
Kai komandos tipas iš anksto nežinomas arba komanda gali grąžinti ir duomenis, ir skaičių. |
execute() pavyzdys:
// Manoma, kad statement jau sukurtas
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");
if (isResultSet) {
// ResultSet apdorojimas
try (ResultSet rs = statement.getResultSet()) {
while (rs.next()) {
// Duomenų skaitymas
}
}
} else {
// Atnaujintų eilučių skaičiaus apdorojimas
int updateCount = statement.getUpdateCount();
// updateCount apdorojimas
}