[英]Open two resultsets simultaneously
我正在尝试这样做:
while (rs.next()) {
int id = rs.getInt(1);
ResultSet innerRs = stmt.executeQuery("select something from sometable where id =" + id + ";");
String one = innerRs.getString(1);
String two = rs.getString(2); //result set is already closed thrown here.
}
但我收到错误“结果集已关闭”。 我正在使用Postgresql。 我真的想不出另一种方法,这不是很费力的。 如何解决这个错误?
您不需要两个结果集。 只需学习 SQL JOIN子句 ,即可在单个SQL查询中从两个不同的表中获取所需的数据。
如果确实需要,那么创建一条单独的语句而不是重用现有的语句确实是可行的方法。 重用它会强制关闭所有先前打开的游标(结果集)。
您使用stmt.executeQuery()
,是否使用stmt
执行rs
? 如果是这样,则需要一条新statement
因为在已使用的语句上创建查询会强制其关闭,从而导致此错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.