java.sql.SQLException:ResultSet关闭后不允许操作[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.sql.SQLException:ResultSet关闭后不允许操作[重复]相关的知识,希望对你有一定的参考价值。

任何人都可以指出我在写入方向上解决错误:SQLException:ResultSet关闭后不允许操作

这是我相信错误发生的代码

Statement stmt = con.createStatement();
String query1 = "";
String query2 = "";

int candidateNo = 42;

query1 = "SELECT * FROM Candidates WHERE CandidateNo = "+ candidateNo;
ResultSet rs = stmt.executeQuery(query1);
//If query can be completed then display name and prompt to continue
if(rs.next()){
    query2 = "SELECT * FROM Achieved WHERE CandidateNo = " + candidateNo;
    ResultSet ts = stmt.executeQuery(query2);
}

我试过使用resultset rs = null;创建变量但仍然出现错误

答案

你正在迭代绑定到ResultSetStatement,然后在迭代时,你使用完全相同的Statement对象发出一个新的查询并获取并迭代另一个ResultSet

只要您没有完成第一个ResultSet的处理,这将无法工作,因此请考虑使用不同的Statement对象进行第二次查询。

另一答案

在您的代码中,您使用2 ResultSet同时执行相同的Statement对象(stmt)。对两个查询使用不同的Statement对象。

以上是关于java.sql.SQLException:ResultSet关闭后不允许操作[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Oracle DB:java.sql.SQLException:关闭连接

Cause: java.sql.SQLException: 请求的转换无效 ; uncategorized SQLException for SQL []; SQL state [99999]; er

java.sql.SQLException: ORA-00604: 递归 SQL 级别 1 发生错误

Java:Sqlexception:位置不支持的 SQL92 令牌:178

java.sql.SQLException:接近“on”:语法错误问题

java.sql.SQLException:架构“ROOT”不存在