Sobes.tech
Junior

Aký je rozdiel medzi metódami execute, executeQuery a executeUpdate?

sobes.tech AI

Odpoveď od AI

  • executeQuery(): Používa sa na vykonávanie SQL príkazov, ktoré vracajú jedinú množinu výsledkov (napríklad SELECT). Vráti objekt ResultSet.
  • executeUpdate(): Používa sa na vykonávanie SQL príkazov, ktoré menia databázu a vracajú počet upravených riadkov (napríklad INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE). Vráti int.
  • execute(): Viacúčelová metóda. Môže vykonávať akýkoľvek typ SQL príkazu. Vráti boolean, ktorý ukazuje, či bol vrátený ResultSet. Ak true, výsledok je ResultSet. Ak false, výsledok je počet upravených riadkov. Na získanie aktuálneho výsledku je potrebné použiť getResultSet() alebo getUpdateCount().
Metóda Účel Vrátená hodnota Príklad použitia
executeQuery Spustenie SELECT ResultSet Získanie údajov z tabuľky.
executeUpdate Spustenie INSERT, UPDATE, DELETE, DDL int (počet upravených riadkov) Pridanie, úprava alebo odstránenie záznamov; vytvorenie alebo odstránenie tabuliek.
execute Akýkoľvek SQL príkaz boolean (true, ak bol vrátený ResultSet) Keď typ príkazu nie je vopred známy alebo príkaz môže vrátiť dáta aj count.

Príklad použitia execute():

// Predpokladá sa, že statement je už vytvorený
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");

if (isResultSet) {
    // Spracovanie ResultSet
    try (ResultSet rs = statement.getResultSet()) {
        while (rs.next()) {
            // Čítanie údajov
        }
    }
} else {
    // Spracovanie počtu upravených riadkov
    int updateCount = statement.getUpdateCount();
    // Spracovanie updateCount
}