分页查询需要封装的PageBean

  分页的PageBean

package com.itheima.crm.domain;

import java.util.List;

public class PageBean<T> {

	private Integer currPage;  //当前页数
	private Integer pageSize;  //每页显示的记录数
	private Integer totalCount;  //总记录数
	private Integer totalPage;  //总页数
	private List<T> list;		//每页查询到的数据的集合
	
	//get... set...
}

1、Action类

/**
	 * 分页查询客户的方法:findAll
	 */
	public String findAll(){
		//接收参数:分页参数
		//最好使用DetachedCriteria(自身带有分页查询)
		DetachedCriteria detachedCriteria=DetachedCriteria.forClass(Customer.class);
		//调用业务层查询:
		PageBean<Customer> pageBean=customerService.findByPage(detachedCriteria,currPage,pageSize);
		ActionContext.getContext().getValueStack().push(pageBean);
		return "findAll";
	}

2*  具体封装:service层

@Override
	//分页查询客户的方法
	public PageBean<Customer> findByPage(DetachedCriteria detachedCriteria, Integer currPage, Integer pageSize) {
		PageBean<Customer> pageBean=new PageBean();
		//分装当前页数
		pageBean.setCurrPage(currPage);
		//封装每页显示的页数
		pageBean.setPageSize(pageSize);
		//封装总记录数
		//调用dao
		Integer totalCount=customerDao.findCount(detachedCriteria);
		pageBean.setTotalCount(totalCount);
		//封装总页数:
		Double tc=totalCount.doubleValue();
		Double num=Math.ceil(tc/pageSize);//Math.ceil:向上取整
		pageBean.setTotalPage(num.intValue());
		//封装每页显示数据的集合
		Integer begin=(currPage-1)*pageSize;//计算从哪开始的
		List<Customer> list=customerDao.findByPage(detachedCriteria,begin,pageSize);
		pageBean.setList(list);
		return pageBean;
	}

3、dao层查询

	@Override
	//dao中带条件统计的个数
	public Integer findCount(DetachedCriteria detachedCriteria) {
		//select Count(*) from ... where ...
		 detachedCriteria.setProjection(Projections.rowCount());
		List<Long> list= (List<Long>) this.getHibernateTemplate().findByCriteria(detachedCriteria);
		if(list.size()>0){
			return list.get(0).intValue();
		}
		return null;
	}

	@Override
//分页查询客户的方法
	public List<Customer> findByPage(DetachedCriteria detachedCriteria, Integer begin, Integer pageSize) {
		detachedCriteria.setProjection(null);
		return (List<Customer>) this.getHibernateTemplate().findByCriteria(detachedCriteria,begin,pageSize);
	}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值