如何在單一 Java 語句中執行多個 MySQL 查詢?
Jan 22, 2025 am 09:16 AM在Java中使用單一語句執行多個資料庫查詢
MySQL允許使用分號 (;) 分隔符號在一個語句中執行多個查詢。但是,在Java中使用JDBC處理此操作預設情況下可能會拋出異常。
方法一:使用連線屬性
要啟用多個查詢執行,您可以在建立連線時指定allowMultiQueries
連線屬性:
String dbUrl = "jdbc:mysql:///test?allowMultiQueries=true"; Connection connection = DriverManager.getConnection(dbUrl, username, password);
登入後複製
方法二:使用預存程序
或者,您可以在MySQL中建立一個包含多個查詢的預存程序。然後,您可以使用CallableStatement
從Java中呼叫該預存程序。例如下:
MySQL預存程序:
CREATE PROCEDURE multi_query() BEGIN SELECT COUNT(*) AS name_count FROM tbl_mq; INSERT INTO tbl_mq (name) VALUES ('ravi'); SELECT LAST_INSERT_ID(); SELECT * FROM tbl_mq; END;
登入後複製
Java程式碼:
CallableStatement cstmt = connection.prepareCall("{call multi_query()}"); boolean hasMoreResultSets = cstmt.execute(); while (hasMoreResultSets) { ResultSet rs = cstmt.getResultSet(); // 处理结果集 while (rs.next()) { // 处理每一行数据 } hasMoreResultSets = cstmt.getMoreResults(); }
登入後複製
處理多個查詢
對於這兩種方法,您可以使用Statement
或CallableStatement
物件的getResultSet()
方法迭代結果。 getMoreResults()
方法傳回true
表示有更多結果可供處理,確保您捕捉多個查詢的所有結果。
注意:
請記住,像INSERT、UPDATE和DELETE這樣的DML(資料操作語言)語句不會傳回結果集,因此您應該單獨處理它們。 在處理結果集時,務必關閉ResultSet
和Statement
物件以釋放資源。 建議使用try-with-resources語句來確保資源的自動關閉。
以上是如何在單一 Java 語句中執行多個 MySQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章
倉庫:如何復興隊友
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
擊敗分裂小說需要多長時間?
3 週前
By DDD
Hello Kitty Island冒險:如何獲得巨型種子
3 週前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前
By 尊渡假赌尊渡假赌尊渡假赌
公眾號網頁更新緩存難題:如何避免版本更新後舊緩存影響用戶體驗?
3 週前
By 王林

熱門文章標籤

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在 Linux 中運行 MySQl(有/沒有帶有 phpmyadmin 的 podman 容器)
