我正在尝试这样做:
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。我不能真正找到另一种方法来做这个不是非常劳动密集的方法。我怎样才能解决这个错误?
答案 0 :(得分:4)
您不需要两个结果集。只需learn SQL JOIN clause即可在单个SQL查询中从两个不同的表中获取所需数据。
如果确实需要,那么创建一个单独的语句而不是重用现有的语句确实是要走的路。重用它会强制关闭所有先前打开的游标(结果集)。
答案 1 :(得分:3)
您使用stmt.executeQuery()
,是否使用stmt
执行rs
?如果是这样,您需要一个新的statement
,因为在您使用的查询上创建查询已迫使其关闭,从而导致此错误。