结果集中的行存储位置



执行语句时会发生什么?它是否将所有行检索到内存中?行存储在Resultset中的什么位置,以及如何将它们提取到java程序中?

更新

在调用resultSet.next();时,它是否转到数据库获取单行返回Java端并显示它? ResultSet cursor它与数据库cursor相似吗?

一个常见的误解是,ResultSet 必须是某种容器,用于保存查询中的所有行,因此人们尝试在应用程序中传递它,并惊讶于当用于创建它的数据库连接关闭时它变得无效。ResultSet 更像是一个数据库游标,它是用来从数据库拉回行的东西。ResultSet 具有一个提取大小,该大小向驱动程序建议它一次可以从服务器获取多少行,以便它可以检索块中的行并在需要时缓冲它们。

它是特定于驱动程序的。 例如 Postgres JDBC 默认将所有行加载到内存中,Oracle 在服务器端使用游标并仅获取部分行。

相关内容

  • 没有找到相关文章

最新更新