Sobes.tech
Junior

Wat is het verschil tussen de methoden execute, executeQuery en executeUpdate?

sobes.tech AI

Antwoord van AI

executeQuery wordt gebruikt om SELECT-query's uit te voeren en geeft een ResultSet-object met de resultaten.

executeUpdate wordt gebruikt om DML (INSERT, UPDATE, DELETE) of DDL (CREATE, ALTER, DROP) commando's uit te voeren. Het retourneert het aantal beïnvloede rijen.

execute kan elk type SQL-commando uitvoeren. Het geeft een boolean terug: true als het resultaat een ResultSet is, en false anders (als het een aantal bijgewerkte rijen of geen resultaat is). Voor het verkrijgen van het ResultSet wordt de methode getResultSet() gebruikt, en voor het verkrijgen van het aantal bijgewerkte rijen — getUpdateCount().

Methode Doel Terugkeer type Voorbeelden van SQL-commando's
executeQuery SELECT ResultSet SELECT * FROM users
executeUpdate INSERT, UPDATE, DELETE, DDL int (aantal rijen) INSERT INTO users ..., UPDATE users ..., DROP TABLE users
execute Elk type boolean Elk SQL-commando

Voorbeeld van gebruik van executeQuery:

// Verbinding verkrijgen
Connection conn = ...;
Statement stmt = conn.createStatement();
// SELECT uitvoeren
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 + ", Naam: " + name);
}
rs.close();
stmt.close();
conn.close();

Voorbeeld van gebruik van executeUpdate:

// Verbinding verkrijgen
Connection conn = ...;
Statement stmt = conn.createStatement();
// INSERT uitvoeren
int updatedRows = stmt.executeUpdate("INSERT INTO users (name) VALUES ('John Doe')");
System.out.println("Ingevoerde rijen: " + updatedRows);
stmt.close();
conn.close();

Voorbeeld van gebruik van execute:

// Verbinding verkrijgen
Connection conn = ...;
Statement stmt = conn.createStatement();
// DDL uitvoeren
boolean isResultSet = stmt.execute("CREATE TABLE products (id INT PRIMARY KEY, name VARCHAR(255))");
if (!isResultSet) {
    System.out.println("Aantal beïnvloede rijen of tabel gemaakt: " + stmt.getUpdateCount());
}
stmt.close();
conn.close();