一个java分页的工具类
上代码
package com.elan.ffoodcrm.erpapi.basis.entity; import java.util.ArrayList; import java.util.List; /** * @author zw * @Description: (介绍) * @date **/ public class PageBean<T> { private List<T> lists;// 存放 需要显示的 实体类数据 private Integer pageNo = 1;// 当前页码数(默认给1) private Integer pageSize; // 每页显示的行数 private Integer totalPage;// 总页数 private Integer rows;// 总行数 //对私有属性的封装 // 不需要对外提供totalPage总页数的set方法 因为totalPage是根据 总行数 和 每页显示的行数求出来的 public List<T> getLists() { return lists; } public void setLists(List<T> lists) { this.lists = lists; } public Integer getPageNo() { return pageNo; } public Integer getPageSize() { return pageSize; } public void setPageSize(Integer pageSize) { this.pageSize = pageSize; } public Integer getTotalPage() { return totalPage; } public Integer getRows() { return rows; } //设置有行数据 并求出页数 public void setRows(Integer rows) { this.rows = rows; //页数 根据传入的 总行数 以及 每页显示的行数 求出总页数 this.totalPage=rows % pageSize==0 ? rows/pageSize : (rows/pageSize+1); } //设置页码 public void setPageNo(Integer pageNo) { //如果传入的页码为空 或者小于0 就默认给 1 if (null == pageNo || pageNo < 0) this.pageNo = 1; //如果当前页码数>总页码数 就让 当前页码数 等于 最大页码数 else if (pageNo > this.totalPage && this.totalPage> 0) this.pageNo = this.totalPage; //都符合条件 就让 当前页码数 等于 传入的页码数 else this.pageNo = pageNo; } }
使用
/** * 商品信息 * @param page 当前页 * @param Number 每页分的行数 * @return */ public List<CommoditiesBean> getGoods(Integer page, Integer Number) { //得到表中的行数 int Commod = informationService.getGoodsCount(); //创建工具类对象 PageBean<CommoditiesBean> pager = new PageBean<>(); //每页显示的行数 pager.setPageSize(Number); //设置总行数 pager.setRows(Commod); //当前页数 pager.setPageNo(page); //mysql获取分页第一个参数 (pager.getPageNo() - 1) * pager.getPageSize(); //获取分页第一个参数 int first = (pager.getPageNo() - 1) * pager.getPageSize() + 1; //调用service层将分页的两个参数传递过去 List<CommoditiesBean> commoditiesBeans = informationService.getGoods(first, pager.getPageSize()); //将的到的对象放到PagerBean类里 pager.setLists(commoditiesBeans); return pager.getLists(); }