【发布时间】:2012-04-14 12:55:33
【问题描述】:
通常当我想使用 Mysql 查询大型结果集时,我会写这个(取自this answer):
stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(Integer.MIN_VALUE);
现在我正在使用jOOQ 2.0.5,但我无法获得相同的结果。
我尝试调用fetchLazy,但没有成功,它将整个结果集加载到内存中:
Cursor<Record> result = query.fetchLazy(Integer.MIN_VALUE);
作为一种解决方法,我可以使用query.getSQL() 获取sql 查询并创建一个合适的Statement 来执行它。
还有其他方法可以使用 jOOQ 获得流式结果集吗?
【问题讨论】:
-
我自己从未使用过它,但快速浏览一下文档会提到您必须在底层语句上设置 setFetchSize() (尽管这似乎违背了覆盖的目的......)。跨度>