在 java (jdbc) 中使用相同的连接实例打开两个结果集的问题!

我最近遇到了关于使用 JDBC 的 java 结果集的问题。

为了便于理解,我将用两个函数 A 和 B 举例说明,假设我们在函数 A 中创建了一个结果集,我们称之为 rs1,这个 rs1 将返回给我们从 a 借来的书组图书馆。

因此,对于从 rs1 获取的每一本书,我们调用函数 B,该函数将定义另一个结果集 rs2(rs2 是使用相同的连接实例创建的)来确定借过该书的人。

这里的问题是,当我们从 rs1 中提取第一本书并在 rs1.next() 返回 false 之后调用 B 时,它不会超过第一本书,但是当我没有在 B 中定义 rs2 时,它工作得很好。这是为什么?

注意:rs1 和 rs2 使用相同的连接实例创建!


慕婉清6462132
浏览 91回答 1
1回答

侃侃无极

您是否使用相同Statement的方法来执行两个查询?JDBC 只允许ResultSet为每个打开一个Statement,因此如果您Statement对内部查询使用相同的,那么它将关闭您用于外部查询的那个。Statement如果您使用单独的内部查询,您应该能够做您想做的事情。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java