Java Ibatis queryWithRowHandler()似乎仍能获取所有行

Java Ibatis queryWithRowHandler()似乎仍能获取所有行,java,mysql,ibatis,Java,Mysql,Ibatis,我正在使用iBATIS2.3.4和Mysql 5.1.37,Mysql java connector 5.1.6和java 1.6 我有一个从一个表返回很多行的查询。为此,手册建议使用queryWithRowHandler()。然而,当我在内部调用这个查询时,它似乎仍然会获取所有行(在第一次handleRow()调用完成之前,内存增长非常快) 我如何告诉Ibatis在时间段获取较小的结果(我当然可以使用几个查询返回较小结果的列表,但我认为这正是Ibatis应该为我做的) 编辑: 我已尝试将语句的

我正在使用iBATIS2.3.4和Mysql 5.1.37,Mysql java connector 5.1.6和java 1.6

我有一个从一个表返回很多行的查询。为此,手册建议使用
queryWithRowHandler()
。然而,当我在内部调用这个查询时,它似乎仍然会获取所有行(在第一次
handleRow()
调用完成之前,内存增长非常快)

我如何告诉Ibatis在时间段获取较小的结果(我当然可以使用几个查询返回较小结果的列表,但我认为这正是Ibatis应该为我做的)

编辑:
我已尝试将语句的
fetchSize
设置为100,这似乎没有任何作用,对于
resultsetype=“FORWARD\ONLY”也一样
lazyLoadingEnabled
没有设置在任何位置,因此应该启用。

在进行更彻底的搜索后,我发现和有一些有用的信息。这归结为需要以下内容:

JDBC驱动程序需要一个设置来使用游标(这可能也有一些缺点)

  <transactionManager type="JDBC" commitRequired="false">
    <dataSource type="SIMPLE">
       ...
      <property name="Driver.useCursorFetch" value="true"/>
    </dataSource>
  </transactionManager>
fetchSize="1000" resultSetType="FORWARD_ONLY"