Sobes.tech
Junior

Jaký je rozdíl mezi metodami execute, executeQuery a executeUpdate?

sobes.tech AI

Odpověď od AI

  • executeQuery(): Používá se k provádění SQL operátorů, které vracejí jedinou sadu výsledků (například operátory SELECT). Vrací objekt ResultSet.
  • executeUpdate(): Používá se k provádění SQL operátorů, které mění databázi a vracejí počet aktualizovaných řádků (například INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE). Vrací int.
  • execute(): Univerzálnější metoda. Může provádět jakýkoli typ SQL operátoru. Vrací boolean, který ukazuje, zda byl vrácen ResultSet. Pokud true, je výsledek ResultSet. Pokud false, je výsledek počet aktualizovaných řádků. Pro získání skutečného výsledku je třeba použít getResultSet() nebo getUpdateCount().
Metoda Účel Vrácená hodnota Příklad použití
executeQuery Spuštění SELECT ResultSet Získání dat z tabulky.
executeUpdate Spuštění INSERT, UPDATE, DELETE, DDL int (počet změněných řádků) Přidání, změna nebo odstranění záznamů; vytvoření nebo odstranění tabulek.
execute Jakýkoli SQL operátor boolean (true, pokud byl vrácen ResultSet) Pokud typ operátoru není předem znám nebo operátor může vracet data i počet.

Příklad použití execute():

// Předpokládá se, že statement již byl vytvořen
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");

if (isResultSet) {
    // Zpracování ResultSet
    try (ResultSet rs = statement.getResultSet()) {
        while (rs.next()) {
            // Čtení dat
        }
    }
} else {
    // Zpracování počtu aktualizovaných řádků
    int updateCount = statement.getUpdateCount();
    // Zpracování updateCount
}