Home >Java >javaTutorial >How Can I Execute Multiple SQL Queries in a Single JDBC Statement?
Executing Multiple Queries in a Single Statement with JDBC
In JDBC, executing multiple queries in a single statement is possible, albeit with specific requirements.
Option 1: Configuring Multiple Queries
To execute multiple queries separated by a semicolon, set the database connection property allowMultiQueries to true.
String url = "jdbc:mysql:///test?allowMultiQueries=true";
boolean hasMoreResultSets = stmt.execute(multiQuerySqlString);
Subsequently, iterate through the query results using:
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: Stored Procedures
Create a stored procedure that combines the SELECT and INSERT queries. Then, execute it using a CallableStatement:
CallableStatement cstmt = con.prepareCall("call multi_query()"); boolean hasMoreResultSets = cstmt.execute();
Iterate through the returned results as before:
while (hasMoreResultSets) { ResultSet rs = stmt.getResultSet(); // handle resultSet }
It's important to note that while this functionality is widely supported, it may not be available in all JDBC drivers or database implementations. Always consult the specific driver documentation for compatibility details.
The above is the detailed content of How Can I Execute Multiple SQL Queries in a Single JDBC Statement?. For more information, please follow other related articles on the PHP Chinese website!