我知道,我们有什么不能调用ResultSet
后这已经closed.and这是一个很好的做法,关闭所有的ResultSet
,Statement
并Connection
使用此之后。
但是在我的代码中,我从来没有关闭过连接,然后为什么呢?
java.sql.SQLException:ResultSet关闭后不允许进行操作
我的代码如下:
编辑-
try{
Connection con=CommonUtil.getConnection();
Statement st=con.createStatement();
ResultSet rs=st.executeQuery("select * from logirecord");
int flag=0;
while(rs.next()){
if(rs.getString(2).trim().equals(username)&&rs.getString(3).trim().equals(password)){
flag=1;
ResultSet rs1=st.executeQuery("select * from personrecord where LoginId='"+ rs.getString(1).trim()+"'");
if(rs1.next()){
String name=rs1.getString(1);
String address=rs1.getString(2);
String hobby=rs1.getString(4);
}
//Exception here.
ResultSet rs2=st.executeQuery("select * from interest where LoginId='"+rs.getString(1).trim()+"'");
//at com.org.test.LoginServlet.doPost(LoginServlet.java:49)
if(rs2.next()){
String interest=rs2.getString(2);
String interest2=rs2.getString(3);
String interest3=rs2.getString(4);
}
request.getRequestDispatcher("display.jsp").forward(request, response);
return;
}
}
}catch(Exception e){
e.printStackTrace();
}
好吧,你越来越
java.sql.SQLException: Operation not allowed after ResultSet closed
因为您正在尝试遍历一个相同连接的另一个结果集时遍历一个结果集。
如果您要嵌套处理来自同一数据库的两个结果集,那么您在做错什么。这些集合的组合应在数据库端完成。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句