PageHelper 分页类
来源:互联网 发布:青果软件教务系统 编辑:程序博客网 时间:2024/05/24 07:12
分页类: PageHelper.java
package util.helper;public class PageHelper { /** Configuration PageHelper **/ protected int pageSize; protected int linkCount; public PageHelper(int pageSize, int linkCount){ this.pageSize = pageSize; this.linkCount = linkCount; } public int getPageSize() { return pageSize; } public int getLinkCount() { return linkCount; } /** Configuration PageHelper End **/ /** Set PageHelper **/ protected int rowCount = 0; protected int currentPage = 1; public int getRowCount() { return rowCount; } public void setRowCount(int rowCount) { if(0 <= rowCount){ this.rowCount = rowCount; this.updatePageCount(); } } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { if(1 <= currentPage && currentPage <= pageCount){ this.currentPage = currentPage; this.updateBeginIndex(); this.updateHasPrevPage(); this.updateHasNextPage(); this.updateStartPage(); } } /** Set PageHelper End **/ /** Operator PageHelper **/ protected int pageCount = 1; protected int beginIndex = 0; protected boolean hasPrevPage = false; protected int prevPage = 1; protected boolean hasNextPage = false; protected int nextPage = 1; protected int startPage = 1; protected int endPage = 1; public int getPageCount() { return pageCount; } public int getBeginIndex() { return beginIndex; } public boolean isHasPrevPage() { return hasPrevPage; } public int getPrevPage() { return prevPage; } public boolean isHasNextPage() { return hasNextPage; } public int getNextPage() { return nextPage; } public int getStartPage() { return startPage; } public int getEndPage() { return endPage; } /** Operator PageHelper End **/ /** Update PageHelper **/ protected void updatePageCount(){ // from 1 to pageCount pageCount = (rowCount - 1) / pageSize + 1; this.updateHasNextPage(); this.updateStartPage(); } protected void updateBeginIndex(){ // from (currentPage - 1) * pageSize to currentPage * pageSize - 1 beginIndex = (currentPage - 1) * pageSize; } protected void updateHasPrevPage(){ hasPrevPage = 1 < currentPage; this.updatePrevPage(); } protected void updatePrevPage(){ if(hasPrevPage){ prevPage = currentPage - 1; }else{ prevPage = currentPage; } } protected void updateHasNextPage(){ hasNextPage = pageCount > currentPage; this.updateNextPage(); } protected void updateNextPage(){ if(hasNextPage){ nextPage = currentPage + 1; }else{ nextPage = currentPage; } } protected void updateStartPage(){ int mid = (linkCount + 1) / 2; if(currentPage <= mid){ startPage = 1; }else if(pageCount - currentPage < mid){ startPage = pageCount - linkCount + 1; if(startPage <= 0){ startPage = 1; } }else{ startPage = currentPage - mid + 1; } this.updateEndPage(); } protected void updateEndPage(){ int end = startPage + linkCount - 1; if(end < pageCount){ endPage = end; }else{ endPage = pageCount; } } /** Update PageHelper End **/}
分页测试类: PageHelperUtil.java
package com.helper.unit;import org.junit.Test;import util.helper.PageHelper;public class PageHelperUtil { private void output(PageHelper pageHelper){ System.out.print("上一页:" + pageHelper.getPrevPage() + " 下一页:" + pageHelper.getNextPage() + " 起始下标:" + pageHelper.getBeginIndex()); if(pageHelper.isHasPrevPage()){ System.out.print(" 有上一页: "); }else{ System.out.print(" 无上一页: "); } for(int i=pageHelper.getStartPage(); i<=pageHelper.getEndPage(); i++){ if(pageHelper.getCurrentPage() == i){ System.out.print(" *" + i + "*"); }else{ System.out.print(" " + i); } } if(pageHelper.isHasNextPage()){ System.out.print(" :有下一页 "); }else{ System.out.print(" :无下一页"); } System.out.println("\n"); } @Test public void test() { // 实例化一个每页显示10条记录,有5个链接按钮的分页工具 PageHelper pageHelper = new PageHelper(10, 5); // 设置总记录数 pageHelper.setRowCount(90); // 设置当前页 pageHelper.setCurrentPage(1); output(pageHelper); // 设置当前页 pageHelper.setCurrentPage(2); output(pageHelper); // 设置当前页 pageHelper.setCurrentPage(3); output(pageHelper); // 设置当前页 pageHelper.setCurrentPage(5); output(pageHelper); // 设置当前页 pageHelper.setCurrentPage(7); output(pageHelper); // 设置当前页 pageHelper.setCurrentPage(8); output(pageHelper); // 设置当前页 pageHelper.setCurrentPage(9); output(pageHelper); }}
测试结果:
上一页:1 下一页:2 起始下标:0 无上一页: *1* 2 3 4 5 :有下一页 上一页:1 下一页:3 起始下标:10 有上一页: 1 *2* 3 4 5 :有下一页 上一页:2 下一页:4 起始下标:20 有上一页: 1 2 *3* 4 5 :有下一页 上一页:4 下一页:6 起始下标:40 有上一页: 3 4 *5* 6 7 :有下一页 上一页:6 下一页:8 起始下标:60 有上一页: 5 6 *7* 8 9 :有下一页 上一页:7 下一页:9 起始下标:70 有上一页: 5 6 7 *8* 9 :有下一页 上一页:8 下一页:9 起始下标:80 有上一页: 5 6 7 8 *9* :无下一页
阅读全文
0 0
- PageHelper 分页类
- PageHelper分页
- pagehelper分页
- MyBatis分页插件PageHelper
- mybatis分页插件pagehelper
- Mybaties PageHelper分页插件
- 笔记--PageHelper分页
- Spring-Mybatis分页--PageHelper
- Mybatis分页插件-pagehelper
- pageHelper实现分页
- Mybatis分页插件 - PageHelper
- Mybatis分页插件PageHelper
- mybatis pageHelper 分页
- PageHelper分页插件使用
- 分页插件PageHelper
- Mybatis分页插件PageHelper
- PageHelper分页插件使用
- 分页插件PageHelper
- Hive入门
- easyui之tree控件分析
- Android06-常用控件3(ImageView-ProgressBar-Handler)
- 51Nod
- 强化学习族谱
- PageHelper 分页类
- 计算经纬度之间的距离
- win7 配置 matlab Mex 环境
- JSP<include>静态引入和动态引入
- 学界 | Yann LeCun最新研究成果:可以帮助GAN使用离散数据的ARAE
- 170617 逆向-CrackMe之024
- JSP九大内置对象和JSP/Servlet作用域
- CSS 新特性之 Native Variables、 Feature Queries、Grid Layout
- 浅析Java反射机制