【问题标题】:Setting fetchSize in groovy Sql在 groovy Sql 中设置 fetchSize
【发布时间】:2016-10-26 07:45:56
【问题描述】:

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

谢谢!

【问题讨论】:

  • 如果还没有这样做,您可以考虑添加过滤结果以获取所需的数据。

标签: sql jdbc groovy fetch limit


【解决方案1】:

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

这里是一个例子,

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

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

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

注意:有相当多的重载方法名为rows(..)asList(..)eachRow(..)

【讨论】:

  • withStatement 正是我所需要的。谢谢
猜你喜欢
  • 2019-05-06
  • 1970-01-01
  • 1970-01-01
  • 2016-02-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多