使用JDBC 在單一語句中執行多個查詢
在JDBC 中,可以在單一語句中執行多個查詢,儘管有特定的要求.
選項1:設定多個查詢
要執行用分號分隔的多個查詢,請將資料庫連線屬性allowMultiQueries設為true。
String url = "jdbc:mysql:///test?allowMultiQueries=true";
boolean hasMoreResultSets = stmt.execute(multiQuerySqlString);
隨後,使用以下方法迭代查詢結果:
while ( hasMoreResultSets || stmt.getUpdateCount() != -1 ) { if ( hasMoreResultSets ) { ResultSet rs = stmt.getResultSet(); // handle resultSet } else { int queryResult = stmt.getUpdateCount(); // handle DML updates } hasMoreResultSets = stmt.getMoreResults(); }
選項2:預存程序
建立一個組合SELECT 和INSERT 查詢的預存程序。然後,使用CallableStatement 執行它:
CallableStatement cstmt = con.prepareCall("call multi_query()"); boolean hasMoreResultSets = cstmt.execute();
像以前一樣迭代返回的結果:
while (hasMoreResultSets) { ResultSet rs = stmt.getResultSet(); // handle resultSet }
需要注意的是,雖然此功能得到了廣泛支持,但可能並未得到廣泛支持。在所有 JDBC 驅動程式或資料庫實作中可用。請務必查閱特定驅動程式文件以了解相容性詳細資訊。
以上是如何在單一 JDBC 語句中執行多個 SQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!