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();