Sobes.tech
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ąžina ResultSet objektą.
  • 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ąžina int.
  • execute(): Labai universalus metodas. Gali vykdyti bet kokio tipo SQL komandą. Grąžina boolean, kuris rodo, ar buvo grąžintas ResultSet. Jei true, rezultatas yra ResultSet. Jei false, rezultatas yra atnaujintų eilučių skaičius. Norint gauti faktinį rezultatą, reikia naudoti getResultSet() arba getUpdateCount().
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
}