如何为iBatis select语句设置fetchSize

我在Java中使用iBatis作为ORM框架。 我有一个选择声明

 SELECT * FROM SOME_TABLE  

我正在使用queryForList方法:

 List list = getSqlMapClientTemplate().queryForList("getList"); 

但是它检索了大量数据,并且此查询的性能非常慢。

我对这个问题的假设是iBatis具有默认的提取大小(例如在JDBS中是10),所以这就是它如此慢的原因。 所以我想设置更大的提取大小(例如1000)。 我怎么能这样做?

还是我看错了?

注意:我需要所有数据,因此在queryForList方法中设置最大结果对我来说不是一个合适的解决方案。

 List queryForList(String id, Object parameterObject, int skip, int max) 

  

是的,你可以在更高的级别设置fetchSize,而不必担心每次选择都做。

步骤1

创建一个文件mybatis-config.xml

         

您可以添加mybatis http://www.mybatis.org/mybatis-3/configuration.html中支持的任何值

第2步

将其作为资源加载到Config文件中。 这是Spring 4的例子

 @Value("classpath:mybatis-config.xml") private Resource myBatisResource ; 

第3步:传递给您SqlSessionFactoryBean

 sessionFactory.setConfigLocation(myBatisResource); 

注意:我使用myBatis 3.3.0执行此操作。 它不适用于myBatis 3.4.4(有开放缺陷)

这将确保所有select语句都具有分配给它们的fetchSize属性。