Sobes.tech
Junior

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

sobes.tech MI

Válasz az MI-től

A executeQuery a SELECT lekérdezések végrehajtására szolgál, és eredményként egy ResultSet objektumot ad vissza az eredményekkel.

Az executeUpdate DML (INSERT, UPDATE, DELETE) vagy DDL (CREATE, ALTER, DROP) parancsok végrehajtására használható. A végrehajtott sorok számát adja vissza.

Az execute bármilyen SQL parancsot végrehajthat. Egy boolean értéket ad vissza: true, ha az eredmény egy ResultSet, és false más esetben (ha például egy frissített sorok száma vagy nincs eredmény). A ResultSet eléréséhez a getResultSet() metódus, a frissített sorok számának lekéréséhez pedig a getUpdateCount() használható.

Metódus Cél Visszatérési típus SQL parancs példák
executeQuery SELECT ResultSet SELECT * FROM users
executeUpdate INSERT, UPDATE, DELETE, DDL int (sorok száma) INSERT INTO users ..., UPDATE users ..., DROP TABLE users
execute Bármilyen típusú boolean Bármilyen SQL parancs

executeQuery példája:

// Kapcsolat szerzése
Connection conn = ...;
Statement stmt = conn.createStatement();
// SELECT végrehajtása
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 + ", Név: " + name);
}
rs.close();
stmt.close();
conn.close();

executeUpdate példája:

// Kapcsolat szerzése
Connection conn = ...;
Statement stmt = conn.createStatement();
// INSERT végrehajtása
int updatedRows = stmt.executeUpdate("INSERT INTO users (name) VALUES ('John Doe')");
System.out.println("Beszúrt sorok száma: " + updatedRows);
stmt.close();
conn.close();

execute példája:

// Kapcsolat szerzése
Connection conn = ...;
Statement stmt = conn.createStatement();
// DDL végrehajtása
boolean isResultSet = stmt.execute("CREATE TABLE products (id INT PRIMARY KEY, name VARCHAR(255))");
if (!isResultSet) {
    System.out.println("A befolyásolt sorok száma vagy a tábla létrehozva: " + stmt.getUpdateCount());
}
stmt.close();
conn.close();