Junior
Wat is het verschil tussen de methoden execute, executeQuery en executeUpdate?
sobes.tech AI
Antwoord van AI
executeQuery(): Wordt gebruikt om SQL-operatoren uit te voeren die een enkele resultset retourneren (bijvoorbeeldSELECT-operatoren). Geeft eenResultSet-object terug.executeUpdate(): Wordt gebruikt om SQL-operatoren uit te voeren die de database wijzigen en het aantal bijgewerkte rijen retourneren (bijvoorbeeldINSERT,UPDATE,DELETE,CREATE TABLE,DROP TABLE). Geeft eenintterug.execute(): Een meer universele methode. Kan elk type SQL-operator uitvoeren. Geeft eenbooleanterug dat aangeeft of eenResultSetis geretourneerd. Alstrue, is het resultaat eenResultSet. Alsfalse, is het resultaat het aantal bijgewerkte rijen. Om het daadwerkelijke resultaat te krijgen, moetgetResultSet()ofgetUpdateCount()worden gebruikt.
| Methode | Doel | Teruggegeven waarde | Voorbeeld van gebruik |
|---|---|---|---|
executeQuery |
Uitvoeren van SELECT |
ResultSet |
Gegevens ophalen uit een tabel. |
executeUpdate |
Uitvoeren van INSERT, UPDATE, DELETE, DDL |
int (aantal gewijzigde rijen) |
Rijen toevoegen, wijzigen of verwijderen; tabellen maken of verwijderen. |
execute |
Elke SQL-operator | boolean (true als een ResultSet is geretourneerd) |
Wanneer het type operator niet van tevoren bekend is of de operator gegevens en telling kan retourneren. |
Voorbeeld van gebruik van execute():
// Er wordt aangenomen dat de statement al is gemaakt
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");
if (isResultSet) {
// ResultSet verwerken
try (ResultSet rs = statement.getResultSet()) {
while (rs.next()) {
// Gegevens lezen
}
}
} else {
// Aantal bijgewerkte rijen verwerken
int updateCount = statement.getUpdateCount();
// updateCount verwerken
}