Junior
Quelle est la différence entre les méthodes execute, executeQuery et executeUpdate?
sobes.tech IA
Réponse de l'IA
executeQuery(): Utilisé pour exécuter des opérateurs SQL qui renvoient un seul ensemble de résultats (par exemple, les opérateursSELECT). Renvoie un objetResultSet.executeUpdate(): Utilisé pour exécuter des opérateurs SQL qui modifient la base de données et renvoient le nombre de lignes mises à jour (par exemple,INSERT,UPDATE,DELETE,CREATE TABLE,DROP TABLE). Renvoie unint.execute(): Méthode plus universelle. Peut exécuter tout type d'opérateur SQL. Renvoie unbooleanindiquant si unResultSeta été renvoyé. Sitrue, le résultat est unResultSet. Sifalse, le résultat est le nombre de lignes mises à jour. Pour obtenir le résultat réel, il faut utilisergetResultSet()ougetUpdateCount().
| Méthode | Objectif | Valeur de retour | Exemple d'utilisation |
|---|---|---|---|
executeQuery |
Exécution de SELECT |
ResultSet |
Récupérer des données d'une table. |
executeUpdate |
Exécution de INSERT, UPDATE, DELETE, DDL |
int (nombre de lignes modifiées) |
Ajouter, modifier ou supprimer des enregistrements ; créer ou supprimer des tables. |
execute |
Tout opérateur SQL | boolean (true si un ResultSet a été renvoyé) |
Lorsque le type d'opérateur n'est pas connu à l'avance ou que l'opérateur peut renvoyer des données et un compte. |
Exemple d'utilisation de execute() :
// Supposons que la déclaration est déjà créée
boolean isResultSet = statement.execute("SELECT * FROM users WHERE id = 1 OR INSERT INTO logs (message) VALUES ('User fetched')");
if (isResultSet) {
// Traitement du ResultSet
try (ResultSet rs = statement.getResultSet()) {
while (rs.next()) {
// Lecture des données
}
}
} else {
// Traitement du nombre de lignes mises à jour
int updateCount = statement.getUpdateCount();
// Traitement de updateCount
}