日期:2013-11-20  浏览次数:20378 次


Paginator 分页杂谈

iBatis提供了这样的分页查询方法
List list=sqlMap.executeQueryForList("SQL_Alias",HashMapObj,skipResults,maxResults);
但它底层的实现是把结果完全存在内存里,在resultset可能很大的情况下,非常浪费内存,建议不要使用,SqlMapConfig.xml以下设置就可以关掉此项缓存
<settings
    lazyLoadingEnabled="false"
    cacheModelsEnabled="false"
    enhancementEnabled="false"
    maxRequests="512" maxSessions="128" maxTransactions="32"
/>

我们可以把选取一个子集的任务交给数据库处理,Oracle里我们可以这样
select A.* from
(select indent_rq_no,rownum as RN from indent_rq_mstr order by indent_rq_no) A
where RN<=8 and RN>=3

在MySQL里可以用TOP关键字得到类似的功用

--==欢迎大家跟贴就该文章和感兴味的话题和我讨论==--