Sobes.tech
Junior

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

sobes.tech AI

Odpoveď od AI

executeQuery sa používa na vykonávanie SELECT dopytov, vracia objekt ResultSet s výsledkami.

executeUpdate sa používa na vykonávanie DML príkazov (INSERT, UPDATE, DELETE) alebo DDL (CREATE, ALTER, DROP). Vracia počet riadkov ovplyvnených operáciou.

execute môže vykonávať akýkoľvek typ SQL príkazu. Vracia boolean: true, ak je výsledkom ResultSet, a false v opačnom prípade (ak ide o počet aktualizovaných riadkov alebo žiadny výsledok). Na získanie ResultSet sa používa metóda getResultSet(), na získanie počtu aktualizovaných riadkov — getUpdateCount().

Metóda Účel Vrátený typ Príklady SQL príkazov
executeQuery SELECT ResultSet SELECT * FROM users
executeUpdate INSERT, UPDATE, DELETE, DDL int (ovplyvnené riadky) INSERT INTO users ..., UPDATE users ..., DROP TABLE users
execute Akýkoľvek typ boolean Akýkoľvek

Príklad použitia executeQuery:

// Získanie spojenia
Connection conn = ...;
Statement stmt = conn.createStatement();
// Vykonanie SELECT
ResultSet rs = stmt.executeQuery("SELECT id, name FROM users");
while (rs.next()) {
    int id = rs.getInt("id");
    String name = rs.getString("name");
    System.out.println("ID: " + id + ", Meno: " + name);
}
rs.close();
stmt.close();
conn.close();

Príklad použitia executeUpdate:

// Získanie spojenia
Connection conn = ...;
Statement stmt = conn.createStatement();
// Vykonanie INSERT
int updatedRows = stmt.executeUpdate("INSERT INTO users (name) VALUES ('John Doe')");
System.out.println("Počet vložených riadkov: " + updatedRows);
stmt.close();
conn.close();

Príklad použitia execute:

// Získanie spojenia
Connection conn = ...;
Statement stmt = conn.createStatement();
// Vykonanie DDL
boolean isResultSet = stmt.execute("CREATE TABLE products (id INT PRIMARY KEY, name VARCHAR(255))");
if (!isResultSet) {
    System.out.println("Vytvorená alebo aktualizovaná tabuľka, počet: " + stmt.getUpdateCount());
}
stmt.close();
conn.close();