Java 状态无效,ResultSet对象已关闭
我正在运行代码,但是得到了“无效状态,ResultSet对象已关闭。”错误。是什么导致了错误Java 状态无效,ResultSet对象已关闭,java,jdbc,resultset,Java,Jdbc,Resultset,我正在运行代码,但是得到了“无效状态,ResultSet对象已关闭。”错误。是什么导致了错误 try{ query = "SELECT * FROM BUNDLE_TEMP " + "MINUS " + "SELECT * FROM BUNDLE"; rs = stmt.executeQuery(query); while (rs.next()){
try{
query = "SELECT * FROM BUNDLE_TEMP "
+ "MINUS "
+ "SELECT * FROM BUNDLE";
rs = stmt.executeQuery(query);
while (rs.next()){
String bundle = rs.getString("BUNDLE");
String week = rs.getString("WEEK");
String sched_dt = rs.getString("SCHED_DT").replace(" 00:00:00.0", "");
String dropper_id = rs.getString("DROPPER_ID");
query = "INSERT INTO BUNDLE "
+ "VALUES ('"
+ bundle+"','"
+ week+"','"
+ sched_dt+"','"
+ dropper_id+"')";
stmt.executeUpdate(query);
}
}catch(Exception e){
System.out.println("Error while trying to insert into BUNDLE\n"+query+"\n"+ e);
}
不能对当前使用
ResultSet
迭代的同一语句执行另一个SQL查询。执行此操作将关闭以前打开的光标(您的选择查询响应结果集
):
引述:
默认情况下,每个语句对象只能打开一个ResultSet对象
同时,。因此,如果读取一个ResultSet对象
与另一个的读取交错,每个都必须已生成
通过不同的语句对象。语句中的所有执行方法
如果
开放的存在
从您的连接创建另一个语句
实例
,我们将其称为updateStmt
和executeUpdate()
此外,请查看您的更新,它可能会更高效、更安全。请在您的问题中发布异常stacktrace,它包含诊断您的问题的有价值的信息。Philipp是对的。我认为你甚至可能会有一次网络中断,切断两个查询之间的连接,这个问题可能会给出与你向我们展示的相同的信息。