Junior
Kāda ir atšķirība starp metodēm execute, executeQuery un executeUpdate?
sobes.tech AI
Atbilde no AI
executeQuery(): Izmanto SQL komandu izpildei, kas atgriež vienu rezultātu kopu (piemēram,SELECT). AtgriežResultSetobjektu.executeUpdate(): Izmanto SQL komandu izpildei, kas maina datu bāzi un atgriež atjaunināto rindu skaitu (piemēram,INSERT,UPDATE,DELETE,CREATE TABLE,DROP TABLE). Atgriežint.execute(): Plaši pielietojama metode. Var izpildīt jebkuru SQL komandu. Atgriežboolean, kas norāda, vai tika atgrieztsResultSet. Jatrue, rezultāts irResultSet. Jafalse, rezultāts ir atjaunināto rindu skaits. Lai iegūtu faktiskos rezultātus, jāizmantogetResultSet()vaigetUpdateCount().
| Metode | Mērķis | Atgrieztā vērtība | Piemērs lietošanai |
|---|---|---|---|
executeQuery |
SELECT izpilde |
ResultSet |
Datu iegūšana no tabulas. |
executeUpdate |
INSERT, UPDATE, DELETE, DDL izpilde |
int (izmainīto rindu skaits) |
Ierakstu pievienošana, mainīšana vai dzēšana; tabulu izveide vai dzēšana. |
execute |
Jebkura SQL komanda | boolean (ja atgriezās ResultSet, true) |
Kad komandas tips nav iepriekš zināms vai komanda var atgriezt datus un skaitli. |
execute() piemērs:
// Pieņem, ka statement jau ir izveidots
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");
if (isResultSet) {
// ResultSet apstrāde
try (ResultSet rs = statement.getResultSet()) {
while (rs.next()) {
// Datu lasīšana
}
}
} else {
// Atjaunināto rindu skaita apstrāde
int updateCount = statement.getUpdateCount();
// updateCount apstrāde
}