上代碼
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(); }