Home >Java >javaTutorial >How Can I Execute Multiple SQL Statements in a Single JDBC Statement?
Multiple Queries in a Single Statement Using JDBC
JDBC allows for the execution of multiple SQL statements in a single operation. This can be useful in situations where you need to perform multiple independent actions or update multiple tables within a single transaction.
Example Code:
Consider the following sample code, which emulates the behavior of the MySQL query you mentioned:
String sqlQuery = "SELECT * FROM TABLE; INSERT INTO TABLE;"; Statement statement = connection.createStatement(); statement.execute(sqlQuery);
Method 1: Connection Property
To enable the execution of multiple queries in a single statement, you can set the allowMultiQueries connection property to true. This instructs the JDBC driver to allow the execution of multiple queries separated by semicolons.
String url = "jdbc:mysql://localhost:3306/databaseinjection?allowMultiQueries=true"; Connection connection = DriverManager.getConnection(url, sqlUsername, sqlPassword);
Method 2: Stored Procedure
Alternatively, you can create a stored procedure in your database that encapsulates the multiple queries. Then, call the stored procedure from Java using a CallableStatement. This allows you to capture multiple ResultSet objects returned by the procedure.
// 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 }
Benefits of Multiple Queries:
Note:
The above is the detailed content of How Can I Execute Multiple SQL Statements in a Single JDBC Statement?. For more information, please follow other related articles on the PHP Chinese website!