Maison > Java > javaDidacticiel > Comment puis-je exécuter plusieurs requêtes SQL dans une seule instruction JDBC ?

Comment puis-je exécuter plusieurs requêtes SQL dans une seule instruction JDBC ?

DDD
Libérer: 2024-12-21 04:32:14
original
901 Les gens l'ont consulté

How Can I Execute Multiple SQL Queries in a Single JDBC Statement?

Exécuter plusieurs requêtes dans une seule instruction avec JDBC

Dans JDBC, l'exécution de plusieurs requêtes dans une seule instruction est possible, mais avec des exigences spécifiques .

Option 1 : Configuration de plusieurs Requêtes

Pour exécuter plusieurs requêtes séparées par un point-virgule, définissez la propriété de connexion à la base de données allowMultiQueries sur true.

String url = "jdbc:mysql:///test?allowMultiQueries=true";
Copier après la connexion
boolean hasMoreResultSets = stmt.execute(multiQuerySqlString);
Copier après la connexion

Ensuite, parcourez les résultats de la requête en utilisant :

while ( hasMoreResultSets || stmt.getUpdateCount() != -1 ) {
  if ( hasMoreResultSets ) {
    ResultSet rs = stmt.getResultSet();
    // handle resultSet
  } else {
    int queryResult = stmt.getUpdateCount();
    // handle DML updates
  }
  hasMoreResultSets = stmt.getMoreResults();
}
Copier après la connexion

Option 2 : Stocké Procédures

Créez une procédure stockée qui combine les requêtes SELECT et INSERT. Ensuite, exécutez-le à l'aide d'un CallableStatement :

CallableStatement cstmt = con.prepareCall("call multi_query()");
boolean hasMoreResultSets = cstmt.execute();
Copier après la connexion

Parcourez les résultats renvoyés comme avant :

while (hasMoreResultSets) {
  ResultSet rs = stmt.getResultSet();
  // handle resultSet
}
Copier après la connexion

Il est important de noter que même si cette fonctionnalité est largement prise en charge, elle peut ne pas l'être disponible dans tous les pilotes JDBC ou implémentations de bases de données. Consultez toujours la documentation spécifique du pilote pour les détails de compatibilité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal