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";
boolean hasMoreResultSets = stmt.execute(multiQuerySqlString);
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(); }
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();
Parcourez les résultats renvoyés comme avant :
while (hasMoreResultSets) { ResultSet rs = stmt.getResultSet(); // handle resultSet }
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!