Sobes.tech
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érateurs SELECT). Renvoie un objet ResultSet.
  • 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 un int.
  • execute() : Méthode plus universelle. Peut exécuter tout type d'opérateur SQL. Renvoie un boolean indiquant si un ResultSet a été renvoyé. Si true, le résultat est un ResultSet. Si false, le résultat est le nombre de lignes mises à jour. Pour obtenir le résultat réel, il faut utiliser getResultSet() ou getUpdateCount().
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
}