正確使用MySQL JDBC遊標
轉載自:
http://blog.csdn.net/seven_3306/article/details/9303879
該文章提出三種方式可以正確使用mysql 遊標
1、當statement設定以下屬性時,採用的是流資料接收方式,每次只從伺服器接收部份資料,直到所有資料處理完畢,不會發生JVM OOM。
setResultSetType(ResultSet.TYPE_FORWARD_ONLY);
setFetchSize(Integer.MIN_VALUE);
2、呼叫statement的enableStreamingResults方法,實際上enableStreamingResults方法內部封裝的就是第1種方式。
3、設定連線屬性useCursorFetch=true (5.0版驅動開始支援),statement以TYPE_FORWARD_ONLY開啟,再設定fetch size引數,表示採用伺服器端遊標,每次從伺服器取fetch_size條資料。
但是實測,只有第一種,第二種方式可以,第三種方式不成功.
測試的MySQL JDBC版本 5.1.31
第三種方式,報錯,總之,只要有useCursorFetch的引數設定,就會報如下異常.
Prepared statement needs to be re-prepared
第二種方式 成功
將PreparedStatemen強轉為com.mysql.jdbc.PreparedStatement,然後執行enableStreamingResults函式.
注意不要設定fetchsize 否則沒有效果
第一種方式 成功
http://blog.csdn.net/seven_3306/article/details/9303879
該文章提出三種方式可以正確使用mysql 遊標
1、當statement設定以下屬性時,採用的是流資料接收方式,每次只從伺服器接收部份資料,直到所有資料處理完畢,不會發生JVM OOM。
setResultSetType(ResultSet.TYPE_FORWARD_ONLY);
setFetchSize(Integer.MIN_VALUE);
2、呼叫statement的enableStreamingResults方法,實際上enableStreamingResults方法內部封裝的就是第1種方式。
3、設定連線屬性useCursorFetch=true (5.0版驅動開始支援),statement以TYPE_FORWARD_ONLY開啟,再設定fetch size引數,表示採用伺服器端遊標,每次從伺服器取fetch_size條資料。
但是實測,只有第一種,第二種方式可以,第三種方式不成功.
測試的MySQL JDBC版本 5.1.31
第三種方式,報錯,總之,只要有useCursorFetch的引數設定,就會報如下異常.
Prepared statement needs to be re-prepared
第二種方式 成功
將PreparedStatemen強轉為com.mysql.jdbc.PreparedStatement,然後執行enableStreamingResults函式.
注意不要設定fetchsize 否則沒有效果
第一種方式 成功
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-2141693/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PL/SQL 中如何正確選擇遊標型別SQL型別
- 如何理解並正確使用 MySQL 索引MySql索引
- 正確使用auto_ptr智慧指標指標
- MySQL如何計算重要的指標,來確定配置是否正確MySql指標
- 圖解MySQL索引(三)—如何正確使用索引?圖解MySql索引
- 如何正確理解「指標」和「標籤」指標
- 【MySql】MySql儲存,遊標,迴圈的簡單使用MySql
- MySQL 調優之如何正確使用聯合索引MySql索引
- Mysql儲存過程中使用多遊標MySql儲存過程
- 如何正確使用公開招標、邀請招標、自行招標的流程
- 如何正確執行 DORA 指標指標
- 正確高效使用 GoogleGo
- 正確使用rman crosscheckROS
- 【恩墨學院】如何理解並正確使用MySql索引MySql索引
- MySQL過程和遊標MySql
- 如何正確使用 Slim 框架框架
- Postman 正確使用姿勢Postman
- PHP Opcache 的正確使用PHPopcache
- 正確使用Java事件通知Java事件
- 轉:正確使用rman crosscheckROS
- PL/SQL-遊標和遊標變數的使用SQL變數
- “Linux”正確讀音及音標(轉)Linux
- MySQL 正確刪除 binlog 日誌MySql
- MySQL 5.6建索引的正確姿勢MySql索引
- Python 操作 MySQL 的正確姿勢PythonMySql
- Redis的正確使用姿勢Redis
- 如何正確使用async/await?AI
- 海關資料如何正確使用
- 使用正確的工具(轉載)
- MySQL全面瓦解19:遊標相關MySql
- MySQL遊標和異常處理MySql
- SQL Server遊標使用例子SQLServer
- oracle遊標使用全解Oracle
- Oracle 遊標使用全解Oracle
- [轉]oracle 遊標使用大全Oracle
- java中使用引用遊標Java
- Oracle 遊標使用大全(轉)Oracle
- Oracle遊標使用大全(轉)Oracle