数据库分页学习

近期项目使用分页,学习了下常见几种数据库下分页查询语句,如下【转载于作者:守护熊猫】:

1.oracle数据库分页 select * from (select a.*,rownum rc from 表名 where rownum<=endrow) a where a.rc>=startrow

2.DB2数据库分页 Select * from (select rownumber() over() as rc,a.* from (select * from 表名 order by 列名) as a) where rc between startrow and endrow

3.SQL Server 2000数据库分页 Select top pagesize * from 表名 where 列名 not in(select top pagesize*page 列名 from 表名 order by 列名) order by 列名

4.SQL Server 2005数据库分页 Select * from (select 列名,row_搜索number() over(order by 列名1) as 别名from 表名) as t where t.列名1>=startrow and t.列名1<=endrow

5.MySQL数据库分页 Select * from 表名 limit startrow,pagesize (Pagesize为每页显示的记录条数)

6.PostgreSQL数据库分页 Select * from 表名 limit pagesize,offset startrow (Pagesize为每页显示的记录条数.)

7.通用模式select * from ( select * from tb_student where sid not in( select sid from tb_student where rownum<=(currentPage-1)*pageSize) ) where rownum <=pageSize;


另外,在项目中也可以使用Spring管理ibatis的Ioc容器SqlMapClientFactoryBean实现分页功能,例如:

public class ObjCheckDaoImpl extends SqlMapClientDaoSupport implements IObjCheckDao {
 /*
* (non-Javadoc)
* @see com.ailk.bomc.report.check.dao.IObjCheckDao#queryObjCheckInfo(com.ailk.bomc.report.check.bean.ObjCheckBean)
*/
public List<ObjCheckBean> queryObjCheckInfo(ObjCheckBean objCheckBean, int page, int limit){


return (List<ObjCheckBean>)this.getSqlMapClientTemplate().queryForList("objCheck.queryObjCheck", objCheckBean, (page-1)*limit, limit);

}
}
posted @ 2015-05-26 15:32  哈喽我是一只鱼  阅读(198)  评论(0编辑  收藏  举报