我最近遇到了关于使用 JDBC 的 java 结果集的问题。为了便于理解,我将用两个函数 A 和 B 举例说明,假设我们在函数 A 中创建了一个结果集,我们称之为 rs1,这个 rs1 将返回给我们从 a 借来的书组图书馆。因此,对于从 rs1 获取的每一本书,我们调用函数 B,该函数将定义另一个结果集 rs2(rs2 是使用相同的连接实例创建的)来确定借过该书的人。这里的问题是,当我们从 rs1 中提取第一本书并在 rs1.next() 返回 false 之后调用 B 时,它不会超过第一本书,但是当我没有在 B 中定义 rs2 时,它工作得很好。这是为什么?注意:rs1 和 rs2 使用相同的连接实例创建!
1 回答

侃侃无极
TA贡献2051条经验 获得超10个赞
您是否使用相同Statement
的方法来执行两个查询?JDBC 只允许ResultSet
为每个打开一个Statement
,因此如果您Statement
对内部查询使用相同的,那么它将关闭您用于外部查询的那个。Statement
如果您使用单独的内部查询,您应该能够做您想做的事情。
添加回答
举报
0/150
提交
取消