Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获得';结果集已关闭';第二次运行查询时_Java_Jsp_Jdbc - Fatal编程技术网

Java 获得';结果集已关闭';第二次运行查询时

Java 获得';结果集已关闭';第二次运行查询时,java,jsp,jdbc,Java,Jsp,Jdbc,我试图传递一个sql查询,但得到“java.sql.SQLException:结果集关闭后不允许操作”。我已经在stackoverflow中进行了基于相同异常的其他对话,但我仍然不理解这个问题 代码如下: String query="SELECT candidate,pan from hcl_candidates where jngstat='Joined'"; statement=conn.createStatement(); resultset=statement.executeQu

我试图传递一个sql查询,但得到“java.sql.SQLException:结果集关闭后不允许操作”。我已经在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

问题在于在同一语句对象上的
循环中执行
executeUpdate
。这违反了政府的期望


PS:您应该首先关闭结果集、语句,然后关闭连接。

重新执行
语句
关闭先前的结果集

很难理解您认为自己在这里做什么,在一个不依赖于循环更改的任何内容的循环中执行语句


注意
SQLException
除了“无法连接”之外,还可能意味着很多事情。

您好,我添加了堆栈跟踪…请告诉我您是否知道任何
,而
循环不会“违反
语句”
类。它本身不是while循环。我的意图是说,在同一个
语句
对象上执行
executeUpdate
导致了问题。请参阅《Oracle文档》中的
声明
类别我同意。它本身不是
while
循环。但这就是你的答案。如果还有更多,它应该出现在你的答案中。谢谢你的建议,我现在把它包括在了答案中。谢谢你指出了这个循环,现在它起作用了。。我本应该删除它,但它一定是我忽略了:)你的程序没有被阻止。