Sobes.tech
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äiteks SELECT). Tagastab ResultSet objekti.
  • executeUpdate(): Kasutatakse SQL-käskude täitmiseks, mis muudavad andmebaasi ja tagastavad uuendatud ridade arvu (näiteks INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE). Tagastab int.
  • execute(): Väga mitmekülgne meetod. Võib täita mis tahes tüüpi SQL-käsku. Tagastab boolean, mis näitab, kas tagastati ResultSet. Kui true, on tulemus ResultSet. Kui false, on tulemus uuendatud ridade arv. Reaalse tulemuse saamiseks tuleb kasutada getResultSet() või getUpdateCount().
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
}