1. 程式人生 > >java 控制檯老是報錯:Operation not allowed after ResultSet closed

java 控制檯老是報錯:Operation not allowed after ResultSet closed

百度了很多,都是說一個st對應一個rs,真是複雜!

怎麼改都報錯!!

總結一下自己的錯誤:

最常見的的是查詢操作,因為利用到rs結果集

while(rs.next){

list.add(rs.getString(1))

}

的時候,

勸各位不要放在工具包jdbcutils的方法裡面,

如果放在工具包jdbcutils的方法裡面,如下圖:

如上方法----操作結束就直接關閉了所有的資源,如果後面用的rs的結果集,就會報錯!!!

如果是刪除,修改,增加只要不涉及返回結果集的,用上面最合適!

但是

如果返回結果集,並且對結果集進行操作

可以這樣操作

因為查詢結束以後,需要把結果集放在List集合裡面;

新增結束以後;

再關閉資源,先關閉rs再關閉st最後關閉conn

最重要的是:

每次對資料庫進行不同的sql語句操作的時候

最好一個conn對應一個st對應一個rs

我的servlert用到兩次查詢,所以我用瞭如下設定

Connection conn=null;
		Connection conn1=null;
		ResultSet rs=null;
		ResultSet rs1=null;
		PreparedStatement st=null;
		PreparedStatement st1=null;

 不要混淆;

免得報錯!

一般報錯是一個rs對應了兩個st,或者是1個st對應兩個rs,

我就是把st1寫成了st,導致一直報錯

我還覺得奇怪,我都分開了,怎麼還報錯???