使用 JDBC 在單一語句中執行多個查詢
JDBC 允許在單一操作中執行多個 SQL 語句。這在您需要執行多個獨立操作或在單一交易中更新多個表的情況下非常有用。
範例程式碼:
考慮以下範例程式碼,它模擬您提到的 MySQL 查詢的行為:
String sqlQuery = "SELECT * FROM TABLE; INSERT INTO TABLE;"; Statement statement = connection.createStatement(); statement.execute(sqlQuery);
方法方法1:連線屬性
要在單一語句中執行多個查詢,您可以將allowMultiQueries 連線屬性設為true。這指示 JDBC 驅動程式允許執行以分號分隔的多個查詢。
String url = "jdbc:mysql://localhost:3306/databaseinjection?allowMultiQueries=true"; Connection connection = DriverManager.getConnection(url, sqlUsername, sqlPassword);
方法 2:預存程序
或者,您可以建立一個儲存過程在封裝多個查詢的資料庫中。然後,使用 CallableStatement 從 Java 呼叫預存程序。這允許您捕獲過程傳回的多個 ResultSet 物件。
// 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 }
多個查詢的好處:
注意:
以上是如何在一條 JDBC 語句中執行多條 SQL 語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!