分页的pageBean的实现

  1. 分页的 PageBean的代码
  2. 采用面向对象的方法,实现分页的技术!注:该代码基于 ssh 框架。
  3.   设置当前的页数,总记录数,总页数,每页显示的记录数,每页显示数据的集合。
  4. Import  java.utils
  5. public class PageBean<T> {
  6.       private int page; // 当前页数
  7.       private int totalCount; // 总记录数
  8.       private int totalPage; // 总页数
  9.       private int limit; // 每页显示的记录数
  10.       private List<T> list; // 每页显示数据的集合 .
  11.       public int getPage() {
  12.            return page;
  13.       }
  14.       public void setPage(int page) {
  15.            this.page = page;
  16.       }
  17.       public int getTotalCount() {
  18.            return totalCount;
  19.       }
  20.       public void setTotalCount(int totalCount) {
  21.            this.totalCount = totalCount;
  22.       }
  23.       public int getTotalPage() {
  24.            return totalPage;
  25.       }
  26.       public void setTotalPage(int totalPage) {
  27.            this.totalPage = totalPage;
  28.       }
  29.       public int getLimit() {
  30.            return limit;
  31.       }
  32.       public void setLimit(int limit) {
  33.            this.limit = limit;
  34.       }
  35.       public List<T> getList() {
  36.            return list;
  37.       }
  38.       public void setList(List<T> list) {
  39.            this.list = list;
  40.       }
  41.      
  42. }
  43.    业务逻辑层的代码实现:
  44. 业务层根据用户 id 查询订单 , 带分页查询 .
  45.       public PageBean<Order> findByUid(Integer uid,Integer page) {
  46.            PageBean<Order> pageBean = new PageBean<Order>();
  47.            // 设置当前页数 :
  48.            pageBean.setPage(page);
  49.            // 设置每页显示记录数 :
  50.            // 显示 5
  51.            int limit = 5;
  52.            pageBean.setLimit(limit);
  53.            // 设置总记录数 :
  54.            int totalCount = 0;
  55.            totalCount = orderDao.findCountByUid(uid);
  56.            pageBean.setTotalCount(totalCount);
  57.            // 设置总页数
  58.            int totalPage = 0;
  59.       totalPage=totalCount%limit==0?totalCount/limit: totalCount / limit + 1;
  60.            pageBean.setTotalPage(totalPage);
  61.            // 设置每页显示数据集合 :
  62.            int begin = (page - 1)*limit;
  63.            List<Order> list = orderDao.findPageByUid(uid,begin,limit);
  64.            pageBean.setList(list);
  65.            return pageBean;
  66.       }
  67. 数据层的代码实现:
  68. // Dao 层查询我的订单分页查询 : 统计个数
  69.       public int findCountByUid(Integer uid) {
  70.            String hql = "select count(*) from Order o where o.user.uid = ?";
  71.            List<Long> list = this.getHibernateTemplate().find(hql, uid);
  72.            if (list != null && list.size() > 0) {
  73.                  return list.get(0).intValue();
  74.            }
  75.            return 0;
  76.       }
  77.  
  78.       // Dao 层查询我的订单分页查询 : 查询数据
  79.       public List<Order> findPageByUid(Integer uid, int begin, int limit) {
  80.            String hql = "from Order o where o.user.uid = ? order by o.ordertime desc";
  81.            List<Order> list = this.getHibernateTemplate().execute(
  82. new PageHibernateCallback<Order>(hql, new Object[] { uid },begin, limit));
  83.            if (list != null && list.size() > 0) {
  84.                  return list;
  85.            }
  86.            return null;
  87.       }
  88.  
  89. PageHibernateCallBack<T> 的方法的实现:实现了 HibernateCallback<List<T>> 接口
  90. package cn.itcast.shop.utils;
  91. public class PageHibernateCallback<T> implements HibernateCallback<List<T>>{
  92.      
  93.       private String hql;
  94.       private Object[] params;
  95.       private int startIndex;
  96.       private int pageSize;
  97.  
  98.       public PageHibernateCallback(String hql, Object[] params,
  99.                  int startIndex, int pageSize) {
  100.            super();
  101.            this.hql = hql;
  102.            this.params = params;
  103.            this.startIndex = startIndex;
  104.            this.pageSize = pageSize;
  105.       }
  106.  
  107.  
  108.  
  109.       public List<T> doInHibernate(Session session) throws HibernateException,SQLException {
  110.            //1 执行 hql 语句
  111.            Query query = session.createQuery(hql);
  112.            //2 实际参数
  113.            if(params != null){
  114.                  for(int i = 0 ; i < params.length ; i ++){
  115.                       query.setParameter(i, params[i]);
  116.                  }
  117.            }
  118.            //3 分页
  119.            query.setFirstResult(startIndex);
  120.            query.setMaxResults(pageSize);
  121.           
  122.            return query.list();
  123.       }
  124.  
  125. }
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值