正確使用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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 解析JDBC使用查詢MySQL【非流式、流式、遊標】JDBCMySql
- MySQL如何計算重要的指標,來確定配置是否正確MySql指標
- 【C++】智慧指標的正確使用方式C++指標
- 圖解MySQL索引(三)—如何正確使用索引?圖解MySql索引
- MySQL 調優之如何正確使用聯合索引MySql索引
- 如何正確理解「指標」和「標籤」指標
- 如何正確使用公開招標、邀請招標、自行招標的流程
- 24. 使用MySQL之使用遊標MySql
- 正確高效使用 GoogleGo
- 如何正確執行 DORA 指標指標
- MySQL 正確刪除 binlog 日誌MySql
- 如何正確使用async/await?AI
- PHP Opcache 的正確使用PHPopcache
- 如何正確使用 Slim 框架框架
- Postman 正確使用姿勢Postman
- 如何正確使用ping呢
- MySQL 5.6建索引的正確姿勢MySql索引
- 如何正確的制定目標?(只需4步)
- TiDB 的正確使用姿勢TiDB
- Redis的正確使用姿勢Redis
- Android中Handler的正確使用Android
- ThreadLocal的正確使用與原理thread
- Mysql系列第二十三講 如何正確的使用索引?MySql索引
- MPLS標籤分發協議正確方式——Vecloud協議Cloud
- Mysql儲存過程中使用多遊標MySql儲存過程
- Oracle與MySQL內嵌遊標的使用示例OracleMySql
- Weex開發之正確使用iconfont
- 如何正確使用Node.js事件Node.js事件
- 使用快取的正確姿勢快取
- 理解並正確使用synchronized和volatilesynchronized
- 如何正確安全使用伺服器?伺服器
- laravel 使用 es 的正確姿勢Laravel
- 使用列舉的正確姿勢
- Java日誌正確使用姿勢Java
- 如何正確使用代理伺服器伺服器
- 正確理解memcached,才能更好的使用
- 海關資料如何正確使用
- 正確使用小程式公眾號
- Protobuf在Cmake中的正確使用