我使用iBatis作为Java中的ORM框架。 我有一个select语句如何为iBatis select语句设置fetchSize
<select id="getList" resultMap="correctMap">
SELECT *
FROM SOME_TABLE
</select>
而且我用的queryForList方法:
List<MappedObject> list = getSqlMapClientTemplate().queryForList("getList");
但它检索数据的一个很大的量和这个查询的性能是相当缓慢的。
我对这个问题的假设是iBatis具有默认的读取大小(例如在JDBS中是10),所以这就是为什么它太慢了。所以我想设置更大的抓取大小(例如1000)。我怎么能这样做?
还是我看错了方向?
注意:我需要所有数据以便设置最大结果queryForList
方法对我来说不是一个合适的解决方案。
List queryForList(String id,
Object parameterObject,
int skip,
int max)
是否有可能将获取大小设置为全局配置而不是在每个查询配置? – nkukhar 2012-01-19 16:32:04
没有办法,我知道。你可以实现Plugin拦截器(MyBatis 3用户手册第17页),它可以在所有通过它的select查询中设置这个属性。这可能不适用于您的版本。 – 2012-01-20 12:44:52
我可以动态设置fetchSize值吗? – 2013-03-12 03:30:38