ibatis分页问题

最近一个项目要使用ibatis,看了一下相关资料,感觉很好,但是有个问题一直有点疑惑,就是他的分页。它好像是一次将所有符合条件的数据读出到cache里面,以后翻页到cache里面读(不知我的理解是否正确),而我以前都是没个新页都连一次数据库,然后只查本页数据并显示的,ibatis这种方式如果数据库的数据很多的时候会不会造成问题?如果想实现我原来的方式,如何用ibatis来实现呢?

参考JPetstore的批量查询,后台是使用iBatis实现的。

我来回复你。
这个问题去年把我磨疯了。
ibaits是一次性把数据全读出来,一页一页挪的,浪费内存。
我们做的项目是用的Oracle,最后,我用三层子查询实现了,大体代码如下:
select * from ( select row_.*, rownum rownum_ from (select * from table1 <![CDATA[) row_ where rownum <= RowEnd#) where rownum_ > RowStart# ]]>

然后写了一个分页类(各实现类继续此类)和一个分页标签,完美实现了分页方案。

???贴子如何修改?

谢谢xx-xzh的回复,我没用ibatis之前,用的也是三层嵌套的方法,但是
到了ibatis里面,感觉却不好实现,以前我是有个通用类来构造这个三层嵌套的语句,最中间的语句从别的地方传进来。现在的问题是在ibatis里面怎么构造这个三层嵌套的语句呢?