面向对象的方式来实现分页的功能——分页类PageBean

来源:互联网 发布:蚁群算法基本思想 编辑:程序博客网 时间:2024/05/18 09:07

面向对象的方式来实现分页的功能——分页类PageBean

1.面向对象的方式来实现分页的功能——分页类PageBean,先实现一个工具类

代码如下:

package cn.itcast.shop.utils;import java.util.List;/* * 分页类的封装 */public class PageBean<T> {    private int page;//当前页数    private int totalCount;//总记录数    private int totalPage;//总页数    private int limit;//每页显示的记录数    private List<T> list;//每页显示数据的集合    public int getPage() {        return page;    }    public void setPage(int page) {        this.page = page;    }    public int getTotalCount() {        return totalCount;    }    public void setTotalCount(int totalCount) {        this.totalCount = totalCount;    }    public int getTotalPage() {        return totalPage;    }    public void setTotalPage(int totalPage) {        this.totalPage = totalPage;    }    public int getLimit() {        return limit;    }    public void setLimit(int limit) {        this.limit = limit;    }    public List<T> getList() {        return list;    }    public void setList(List<T> list) {        this.list = list;    }}

2.action中使用PageBean

//根据分类的id查询的方法        public String findByCid(){            //List<Category> cList=categoryService.findAll();            PageBean<Product> pageBean= productService.findByPageCid(cid,page);//根据一级分类查询商品,带分页的查询            return "findByCid";        }

3.Service业务逻辑层中的代码:

//根据一级分类的cid带有分页的查询商品        public PageBean<Product> findByPageCid(Integer cid, int page) {            PageBean<Product> pageBean=new PageBean<Product>();            //设置当前页数            pageBean.setPage(page);            //设置每页显示的记录数            int limit=8;            pageBean.setLimit(limit);            //设置总的记录数            int totalCount=0;            totalCount=productDao.findCountCid(cid);            pageBean.setTotalCount(totalCount);            //设置总页数            int totalPage=0;            if(totalCount%limit==0){                totalPage=totalCount/limit;            }else{                totalPage=totalCount/limit+1;            }            pageBean.setTotalPage(totalPage);            //每页显示数据的集合            //从哪开始            int begin=(page-1)*limit;            List<Product> list=productDao.findByPageCid(cid,begin,limit);            pageBean.setList(list);            return pageBean;        }

4.持久层代码

//根据分类id查询商品个数        public int findCountCid(Integer cid) {            String hql="select count(*) from Product p where p.categorySecond.category.cid=?";            List<Long> list=this.getHibernateTemplate().find(hql,cid);            if(list!=null&&list.size()>0){                return list.get(0).intValue();            }            return 0;        }        //根据分类id查询商品集合        public List<Product> findByPageCid(Integer cid, int begin, int limit) {            String hql="select p from Product p join p.categorySecond cs join cs.category where c.cid=?";            //分页的另一种写法            return null;        }
2 0
原创粉丝点击