同时打开两个结果集

时间:2011-03-05 04:02:31

标签: java sql jdbc

我正在尝试这样做:

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。我不能真正找到另一种方法来做这个不是非常劳动密集的方法。我怎样才能解决这个错误?

2 个答案:

答案 0 :(得分:4)

您不需要两个结果集。只需learn SQL JOIN clause即可在单个SQL查询中从两个不同的表中获取所需数据。

如果确实需要,那么创建一个单独的语句而不是重用现有的语句确实是要走的路。重用它会强制关闭所有先前打开的游标(结果集)。

答案 1 :(得分:3)

您使用stmt.executeQuery(),是否使用stmt执行rs?如果是这样,您需要一个新的statement,因为在您使用的查询上创建查询已迫使其关闭,从而导致此错误。