Junior
Mis vahe on meetoditel execute, executeQuery ja executeUpdate?
sobes.tech AI
Vastus AI-lt
executeQuery(): Kasutatakse SQL-käskude täitmiseks, mis tagastavad ühe tulemuste komplekti (näiteksSELECT). TagastabResultSetobjekti.executeUpdate(): Kasutatakse SQL-käskude täitmiseks, mis muudavad andmebaasi ja tagastavad uuendatud ridade arvu (näiteksINSERT,UPDATE,DELETE,CREATE TABLE,DROP TABLE). Tagastabint.execute(): Väga mitmekülgne meetod. Võib täita mis tahes tüüpi SQL-käsku. Tagastabboolean, mis näitab, kas tagastatiResultSet. Kuitrue, on tulemusResultSet. Kuifalse, on tulemus uuendatud ridade arv. Reaalse tulemuse saamiseks tuleb kasutadagetResultSet()võigetUpdateCount().
| Meetod | Otstarve | Tagastatav väärtus | Näide kasutamisest |
|---|---|---|---|
executeQuery |
SELECT täitmine |
ResultSet |
Andmete saamine tabelist. |
executeUpdate |
INSERT, UPDATE, DELETE, DDL täitmine |
int (uuendatud ridade arv) |
Kirjete lisamine, muutmine või kustutamine; tabelite loomine või kustutamine. |
execute |
Iga SQL-käsk | boolean (kui tagastati ResultSet, true) |
Kui käsu tüüp pole eelnevalt teada või käsk võib tagastada nii andmeid kui ka arvu. |
execute() näide:
// Eeldatakse, et statement on juba loodud
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");
if (isResultSet) {
// ResultSet-i töötlemine
try (ResultSet rs = statement.getResultSet()) {
while (rs.next()) {
// Andmete lugemine
}
}
} else {
// Uuendatud ridade arvu töötlemine
int updateCount = statement.getUpdateCount();
// updateCount töötlemine
}