java 控制台老是报错:Operation not allowed after ResultSet closed
百度了很多,都是说一个st对应一个rs,真是复杂!怎么改都报错!!总结一下自己的错误:最常见的的是查询操作,因为利用到rs结果集while(rs.next){list.add(rs.getString(1))}的时候,劝各位不要放在工具包jdbcutils的方法里面,如果放在工具包jdbcutils的方法里面,如下图:如上方法----操作结束就直接关...
·
百度了很多,都是说一个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,导致一直报错
我还觉得奇怪,我都分开了,怎么还报错???

更多推荐
所有评论(0)