關於jsp中" 對只轉髮結果集的無效操作: last "異常

因爲初學,所以,在建立Statement時使用默認參數。導致在使用執行rs.last()時,產生“java.sql.SQLException:對只轉髮結果集的無效操作:last”的異常。
最後在建立Statement時加入相關參數,就可以解決了。
操作查詢結果集的過程中出現異常
 
出現異常的語句: rs.last();
 
異常的詳細信息:對只轉髮結果集的無效操作: last
 
解決辦法:  stat = conn.createStatement();
         改爲 stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY); 就可以了
 
分析: 異常出現於移動結果集的指針時,原因是在生成statement對象的時候提供的參數不同
無參數的那個方法使用的是默認參數,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更新數據庫
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章