"對只轉髮結果集的無效操作: first" - 異常
今天呼叫DbUtil類直接運算元據庫,取得ResultSet,想判斷其是否為空(sql中有exists判斷有無相關記錄),結果出現異常:
分析及解決:
在Statement建立時
使用的是預設引數(結果集型別為ResultSet.TYPE_FORWARD_ONLY),這種型別的結果集只能通過rs.next();方法逐條讀取,使用其他讀取方法時就會報錯。如果需要執行一些其他或複雜的移動結果集指標的操作就要使用其它引數。
如,更改如下,可解決:
各引數介紹:
1. ResultSet.TYPE_FORWARD_ONLY (預設方式,略)
2. ResultSet.TYPE_SCROLL_INSENSITIVE 雙向滾動,但不及時更新,就是如果資料庫裡的資料修改過,並不在ResultSet中反應出來。
3. ResultSet.TYPE_SCROLL_SENSITIVE 雙向滾動,並及時跟蹤資料庫裡的更新,以便更改ResultSet中的資料。
4. ResultSet.CONCUR_READ_ONLY 只讀取ResultSet
5. ResultSet.CONCUR_UPDATABLE 用ResultSet更新資料庫
- [ERROR] 2009-03-19 11:04:44 [http-8080-1] com.utils.DbUtil.executeSql(DbUtil.java:57)
- java.sql.SQLException: 對只轉髮結果集的無效操作: first
- java.sql.SQLException: 對只轉髮結果集的無效操作: first
- at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
- at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146)
- at oracle.jdbc.driver.BaseResultSet.first(BaseResultSet.java:74)
- at com.mchange.v2.c3p0.impl.NewProxyResultSet.first(NewProxyResultSet.java:3420)
- at com.utils.DbUtil.executeSql(DbUtil.java:53)
分析及解決:
在Statement建立時
- stmt = conn.createStatement();
使用的是預設引數(結果集型別為ResultSet.TYPE_FORWARD_ONLY),這種型別的結果集只能通過rs.next();方法逐條讀取,使用其他讀取方法時就會報錯。如果需要執行一些其他或複雜的移動結果集指標的操作就要使用其它引數。
如,更改如下,可解決:
- stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
各引數介紹:
引用
1. ResultSet.TYPE_FORWARD_ONLY (預設方式,略)
2. ResultSet.TYPE_SCROLL_INSENSITIVE 雙向滾動,但不及時更新,就是如果資料庫裡的資料修改過,並不在ResultSet中反應出來。
3. ResultSet.TYPE_SCROLL_SENSITIVE 雙向滾動,並及時跟蹤資料庫裡的更新,以便更改ResultSet中的資料。
4. ResultSet.CONCUR_READ_ONLY 只讀取ResultSet
5. ResultSet.CONCUR_UPDATABLE 用ResultSet更新資料庫
相關文章
- iOS FMDB有返回結果集和無返回結果集iOS
- 批次對比結果集
- 結果集集合操作(待更新)
- MySQL 儲存過程空結果集錯誤Error 1329 No data 的異常處理MySql儲存過程Error
- V$SQL檢視顯示結果異常的診斷SQL
- Mybatis 強大的結果集對映器resultMapMyBatis
- 納特島效應:好團隊 壞結果(轉)
- DDL,DML操作對結果快取的影響快取
- org.apache.ibatis.exceptions.PersistenceException:記錄mybatis 查詢結果對映異常ApacheExceptionMyBatis
- struts json型別返回結果異常問題JSON型別
- 巧用臨時表將大結果集轉換為小結果集驅動查詢薦
- Oracle 儲存過程返回結果集|轉|Oracle儲存過程
- Oracle 儲存過程返回結果集 (轉)Oracle儲存過程
- SQL查詢結果集對注入的影響及利用SQL
- 解決異常:公共語言執行時檢測到無效的程式
- 參考分割槽子表使用GET_DEPENDENT_DDL結果異常
- 對Java異常的理解Java
- java字元拼接中的字元帶引號時返回結果異常疑問Java字元
- MySQL in UnionAll結果集的優化MySql優化
- 結果集 (ResultSet)全面解析
- ?laravel8 中介軟體對處理返回結果或異常進行格式統一處理Laravel
- 異常與檔案操作
- symfony2中對異常的處理,個人總結
- ORACLE中的異常(轉)Oracle
- 工作績效資訊和工作績效資訊測量結果的區分
- 【Python】轉換mysql 結果集為詞典型別PythonMySql型別
- Mybatis結果對映MyBatis
- 解析XML檔案時,無效的XML 字元 (Unicode: 0x7)異常處理XML字元Unicode
- MyBatis 結果對映總結MyBatis
- 自建工具集開發文件------異常處理(1.0.0.1) (轉)
- 異常-JDK7針對多個異常的處理方案JDK
- 異常小總結
- PHP PDO獲取結果集PHP
- @RefreshScope對bootstrap.yml無效boot
- Jive筆記4--結果集分頁處理 (轉)筆記
- [Mysql 查詢語句]——對查詢結果進一步的操作MySql
- 異常處理 (轉)
- 介面異常狀態統一處理方案在 Firefox 下無效的原因和解決方案Firefox