- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
来自 fetchNext(int number) 的文档 -“在获取最后一条记录后,这将方便地关闭游标。”
假设number=100,一共有1000条记录。它会在获取第 100 条记录后关闭游标,还是在获取第 1000 条记录时关闭游标?换句话说,文档中提到的“最后一条记录”是什么?
Cursor<Record> records = dsl.select...fetchLazy();
while (records.hasNext()) {
records.fetchNext(100).formatCSV(out);
}
out.close();
最佳答案
这种便利是 jOOQ 中的一个历史特性,最终将被删除:https://github.com/jOOQ/jOOQ/issues/8884 .与 Java 中的每个 Closeable
资源一样,您应该永远依赖这种自动关闭。当您知道已经用完资源时,最好及时关闭资源。在您的情况下,理想情况下,将代码包装在 try-with-resources 语句中。
Javadoc 的意思是,一旦 jOOQ 对 ResultSet.next()
的调用产生 false
,底层 JDBC ResultSet
就会关闭,即数据库不再返回记录。所以不行。如果您的选择总共有 1000 条记录,而您只提取 100 条,则游标将不会关闭。如果是这样,这将不是一个“方便的功能”,但会破坏各种其他 API,包括您调用的 API。完全有可能调用 fetchNext(100)
两次,或者像您一样在循环中调用。
关于jooq - fetchNext(int) 方法在 jooq 中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57854106/
来自 fetchNext(int number) 的文档 -“在获取最后一条记录后,这将方便地关闭游标。” 假设number=100,一共有1000条记录。它会在获取第 100 条记录后关闭游标,还是
我是一名优秀的程序员,十分优秀!