在groovy Sql中设置fetchSize

时间:2016-10-26 07:45:57

标签: sql jdbc groovy fetch limit

我正在使用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?

谢谢!

1 个答案:

答案 0 :(得分:4)

对于 fetchSize ,这似乎是唯一的选择,

这里有一个例子,

 sql.withStatement { stmt -> stmt.fetchSize = 50 }

对于 maxResult ,可用的选项很少,

  • 使用带有maxRows参数或
  • 的重载rows()方法
  • 您可以使用asList()方法获取maxRows参数,或
  • 使用maxRows param
  • eachRow()

NB:有很多名为rows(..)asList(..)eachRow(..)的重载方法。