Sobes.tech
Junior

Mi a különbség az execute, executeQuery és executeUpdate metódusok között?

sobes.tech MI

Válasz az MI-től

  • executeQuery(): Olyan SQL-parancsok végrehajtására használják, amelyek egyetlen eredményhalmazt adnak vissza (például SELECT parancsok). ResultSet objektumot ad vissza.
  • executeUpdate(): Olyan SQL-parancsok végrehajtására használják, amelyek módosítják az adatbázist és a módosított sorok számát adják vissza (például INSERT, UPDATE, DELETE, CREATE TABLE, DROP TABLE). int értéket ad vissza.
  • execute(): Egy sokoldalúbb módszer. Bármilyen típusú SQL-parancsot végrehajthat. Egy boolean értéket ad vissza, amely megmutatja, hogy eredményhalmazt adott-e vissza. Ha true, az eredmény egy ResultSet. Ha false, akkor a módosított sorok száma. A valódi eredmény eléréséhez a getResultSet() vagy a getUpdateCount() használata szükséges.
Módszer Cél Visszatérési érték Használati példa
executeQuery SELECT végrehajtása ResultSet Adatok lekérése egy táblából.
executeUpdate INSERT, UPDATE, DELETE, DDL végrehajtása int (módosított sorok száma) Rekordok hozzáadása, módosítása vagy törlése; táblák létrehozása vagy törlése.
execute Bármilyen SQL-parancs boolean (igaz, ha ResultSet-et adott vissza) Amikor a parancs típusa nem ismert előre, vagy a parancs adatokat és számlálást is visszaadhat.

execute() használati példa:

// Feltételezzük, hogy a statement már létre lett hozva
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");

if (isResultSet) {
    // ResultSet feldolgozása
    try (ResultSet rs = statement.getResultSet()) {
        while (rs.next()) {
            // Adatok olvasása
        }
    }
} else {
    // A módosított sorok számának feldolgozása
    int updateCount = statement.getUpdateCount();
    // updateCount feldolgozása
}