我正在使用groovy sql(2.4.4)。但我无法弄清楚如何设置fetchSize并滚动结果。
我使用sql.setResultSetType(ResultSet.TYPE_FORWARD_ONLY)
但是sql.rows(sqlQuery)
的查询同时返回所有数据,这非常慢。我想像在普通的jdbc查询中那样获取数据。
设置maxRows实际上不是一个选项,因为我必须查询太多次,但fetchSize是一个不错的选择。
在groovy sql文档(http://docs.groovy-lang.org/2.4.4/html/api/groovy/sql/Sql.html)中,我看到了:
覆盖Java的普通JDBC API,提供极大简化的资源管理和结果集处理。
但没有提供有关取物的信息。 如何设置fetchSize?
谢谢!
答案 0 :(得分:4)
对于 fetchSize
,这似乎是唯一的选择,
withStatement()
;需要Closure
这里有一个例子,
sql.withStatement { stmt -> stmt.fetchSize = 50 }
对于 maxResult
,可用的选项很少,
NB:有很多名为rows(..)
,asList(..)
和eachRow(..)
的重载方法。