Requêtes multiples dans une seule instruction utilisant JDBC
JDBC permet l'exécution de plusieurs instructions SQL en une seule opération. Cela peut être utile dans les situations où vous devez effectuer plusieurs actions indépendantes ou mettre à jour plusieurs tables au sein d'une seule transaction.
Exemple de code :
Considérez l'exemple de code suivant, qui émule le comportement de la requête MySQL que vous avez mentionnée :
String sqlQuery = "SELECT * FROM TABLE; INSERT INTO TABLE;"; Statement statement = connection.createStatement(); statement.execute(sqlQuery);
Méthode 1 : Connexion Propriété
Pour activer l'exécution de plusieurs requêtes dans une seule instruction, vous pouvez définir la propriété de connexion AllowMultiQueries sur true. Cela demande au pilote JDBC d'autoriser l'exécution de plusieurs requêtes séparées par des points-virgules.
String url = "jdbc:mysql://localhost:3306/databaseinjection?allowMultiQueries=true"; Connection connection = DriverManager.getConnection(url, sqlUsername, sqlPassword);
Méthode 2 : procédure stockée
Vous pouvez également créer une procédure stockée dans votre base de données qui encapsule les multiples requêtes. Ensuite, appelez la procédure stockée depuis Java à l’aide d’un CallableStatement. Cela vous permet de capturer plusieurs objets ResultSet renvoyés par la procédure.
// Create a stored procedure String storedProcedure = "CREATE PROCEDURE multi_query() BEGIN SELECT * FROM TABLE; INSERT INTO TABLE; END;"; // Call the stored procedure CallableStatement cstmt = connection.prepareCall("{call multi_query()}"); cstmt.execute(); // Retrieve result sets while (cstmt.getMoreResults()) { ResultSet resultSet = cstmt.getResultSet(); // Handle the result set here }
Avantages des requêtes multiples :
Remarque :
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!