日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Operation not allowed after ResultSet closed--操作mysql数据库

發布時間:2025/6/15 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Operation not allowed after ResultSet closed--操作mysql数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一個stmt多個rs進行操作.那么從stmt得到的rs1,必須馬上操作此rs1后,才能去得到另外的rs2,再對rs2操作.不能互相交替使用,會引起rs已經關閉錯誤——Operation not allowed after ResultSet closed.

1 2 3 4 5 6 7 8 9 10 錯誤的代碼如下: ?stmt=conn.createStatement(); ?rs=stmt.executeQuery("select * from t1"); ?rst=stmt.executeQuery("select * from t2"); ?rs.last(); ????//由于執行了rst=stmt.executeQuery(sql_a);rs就會被關閉掉!所以程序執行到此會提示ResultSet已經關閉.錯誤信息為:java.sql.SQLException: Operation not allowed after ResultSet closed rst.last();

正確的代碼:

1 2 3 4 5 6 7 stmt=conn.createStatement(); rs=stmt.executeQuery("select * from t1"); rs.last();//對rs的操作應馬上操作,操作完后再從數據庫得到rst,再對rst操作 rst=stmt.executeQuery("select * from t2"); rst.last();

一個stmt最好對應一個rs, 如果用一個時間內用一個stmt打開兩個rs同時操作,會出現這種情況.編寫這樣的代碼的操作原則是:
所以解決此類問題:

  1.就多創建幾個stmt,一個stmt對應一個rs;

  2.若用一個stmt對應多個rs的話,那只能得到一個rs后就操作,處理完第一個rs后再處理其他的,如上"正確代碼".

 

1 2 3 4 5 6 7 8 9 多個stmt對應各自的rs. stmt=conn.createStatement(); stmt2=conn.createStatement(); rs=stmt.executeQuery("select * from t1"); rst=stmt2.executeQuery("select * from t2"); rs.last(); rst.last();

  

?


總結

以上是生活随笔為你收集整理的Operation not allowed after ResultSet closed--操作mysql数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。