我试图传递sql查询但是我得到了#34; java.sql.SQLException:在ResultSet关闭后不允许操作" 。我在stackoverflow中基于相同的异常进行了其他对话,但我仍然不理解这个问题。
以下是代码:
String query="SELECT candidate,pan from hcl_candidates where jngstat='Joined'";
statement=conn.createStatement();
resultset=statement.executeQuery(query);
while(resultset.next()){
statement.executeUpdate("insert IGNORE into allinvoice (candidate,pan,invdate,client) select candidate,pan,CURDATE(),'HCL' from hcl_candidates where jngstat='Joined'");
}
}
//catch block
finally
{
try
{
if(statement!=null)
{
statement.close();
}
if(conn!=null){
conn.close();
}
if(resultset!=null){
resultset.close();
}
}
// catch block
}
这是错误:
java.sql.SQLException: Operation not allowed after ResultSet closed
//So on
答案 0 :(得分:0)
重新执行Statement
会关闭先前的结果集。
很难理解你认为你在这里做了什么,在循环中执行一个不依赖于循环变化的语句。
注意除了“无法连接”之外,SQLException
可能意味着很多事情。
答案 1 :(得分:-1)
问题在于在同一Statement对象的executeUpdate
循环中执行while
。这违反了Statement class的期望。
PS:您应首先关闭结果集,Statement,然后关闭Connection。