hibernate分页查询

首先,使用hibernate实现分页查询,
1.要编写HQL或者使用查询语句(注意HQL要调用session.createQuery/查询条件调用Session的createCriteria方法)
2.设置查询起始行数和最大查询行数、获取数据(setFirstReuslt/setMaxResult、query.list)
下面是具体的实现过程:
一。定义一个页面类

public class PageInfo<>{
	private List<E> rows;//数据集
	private Integer total;//总数
	private String hql;//sql
	private Integer pageSize=10;//一页多少条
	private Integer pageNumber=1;//当前页
	private Integer maxPageNum;//最大页
	public Map<String,Object>param;//存放其他信息  查询条件等等
	//设置getter/setter方法 构造函数等等 
	//注意一下这个方法 setTotal 重写内部方法
	public void setTotal(integer total){
	this.total=total;
	if(null==pageNumber||"undefined".equals(pageNumber)||pageNumer<=0){
pageNumber=1;
}else{
if(total%pageSize==0){
	if(pageNumber>total/pageSize){
		pageNumber=total/pageSize;
	}
	maxPageNum=total/pageSize;

}else{
if(pageNumber>total/pageSize+1){
	pageNumber=total/pageSize+1;
}
maxPageNum=total/pageSize+1;
}
}
}
}
//JAVA 代码块
//查询总数
Query countQuery=this.getsession().createQuery("select count(id) from test");
//查询列表
Query query =super.getSession().createQuery(" form ActionModel");
//获取总数
Long total=countQuert.uniqueResult();
pageinfo.setTotal(total.intValue());
//拿到最开始第一页
int start=(pageinfo.getPageNumber()-1)*pageinfo.getPageSize();
query.setFirstReuslt(start);
//每一页的条数
query.setMaxResult(pageinfo.getpageSize());
pageinfo.setRows(query.list);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值