风人园

弱水三千,只取一瓢,便能解渴;佛法无边,奉行一法,便能得益。
随笔 - 99, 文章 - 181, 评论 - 56, 引用 - 0
数据加载中……

ibatis分页做法(ZT)

以前用ibatis做分页的时候,是用的queryforList()方法,后面感觉不好,因为我看过一些ibatis的源码,感觉它好像是用resultset的滚动游标的方式实现的,这样如果数据量大会不会有问题呢?以前用jdbc的时候是用一个stringbuffer来构造oracle(我们用的是oracle,其它数据库有各自的方法)的三层钳套的sql语句的,做ibatis时语句都是写在xml配置文件里面的,不好做这种构造工作。后来想了葛简单的办法:
在domain包里面定义一个basedomain类:
public class Basedomain {

private int start;
private int end;
/**
* @return Returns the end.
*/
public int getEnd() {
return end;
}
/**
* @param end The end to set.
*/
public void setEnd(int end) {
this.end = end;
}
/**
* @return Returns the start.
*/
public int getStart() {
return start;
}
/**
* @param start The start to set.
*/
public void setStart(int start) {
this.start = start;
}

}
包含两个成员变量
start: 取数据时的起始位置
end: 取数据时的结束位置

然后各个实体类将继承这个basedomain类
然后在要分页的sql语句里面加上三层钳套的sql语句,两个rownum参数分别就是上面的start和end。
以下是一个示例:
select * from (select my_table.*,rownum as my_rownum from (
select name,password from user  order by id desc
=#start# ]]>   
这就是我的ibatis分页的办法,不知道大家觉得如何?呵呵!
br />我的msn:luyongfugx@hotmail.com]]>

posted on 2006-07-05 17:53 风人园 阅读(850) 评论(0)  编辑  收藏 所属分类: Database