java - 结果集关闭后,我收到操作不允许
问题描述
我正在提取大约 10,000 个患者 ID,同时在执行加密后我想将它们插入到另一个表中,但我收到了这个错误
java.sql.SQLException: ResultSet 关闭后不允许操作。
Connection conn=null;
PreparedStatement pst=null;
try{
conn = DriverManager.getConnection(constring,username,password);
System.out.println("connected");
Statement stmt=(Statement) conn.createStatement();
ResultSet srs = stmt.executeQuery(
"select patient_id from patient");
while (srs.next()) {
patient_id = srs.getInt("patient_id");
System.out.println(patient_id);
JavaApplication5 o=new JavaApplication5(key);
g=patient_id;
o.c=main.g;
s=o.encrypt(o.c,key);
System.out.println(s);
String insert = "Insert into fyp1 (patient_id) values ('"+s+"')";
stmt.executeUpdate(insert);
}
}
catch(SQLException e){System.out.println(e);
解决方案
您需要创建另一个语句,因为第一个 ResultSetsrs
在再次运行时已关闭stmt.executeUpdate(insert);
。
注意:当 Statement 对象关闭、重新执行或用于从多个结果序列中检索下一个结果时,生成它的 Statement 对象会自动关闭 ResultSet 对象。
顺便提一句。请始终发布完整的堆栈跟踪,例如带有相应的行号。
推荐阅读
- r - R:使用 plot_ly() 更改条形图中条形的宽度
- java - Selenium 拖放不适用于 Action 方法,是否有任何替代方法
- javascript - 未能在已部署的 emberjs 应用程序上的资源的“完整性”属性中找到有效的摘要
- sql - 将表条目从一个数据库传输到另一个数据库
- python - 总结字典内列表中相同键的值?
- javascript - JS画布显示在页面底部
- google-apps-script - 谷歌表覆盖现有数据库
- leaflet - 打开街道地图默认图块(传单)
- javascript - React - 在同一选项卡中打开一个链接,然后单击新链接中的一个按钮
- c# - EF Core await ToArrayAsync() 在 DbContext 中不起作用