- 论坛徽章:
- 0
|
一个简单好用的mysql 分页Java类
分页类- package com.cy.driver.common.mybatis.pager;
-
- import com.cy.driver.common.constants.Constants;
-
- /**
- * 类描述: mysql分页 适用于服务端
- * 提供两个构造函数
- * 1.默认分页大小
- * 2.自定义分页大小
- *
- * 作者 yanst 创建时间: 2015-5-7 下午7:54:49
- */
- public class HelpPage {
-
- private long limitOneValue;//limit 第一个参数的值 -1 说明传过来的数据不合法;
-
- private long totalPages;//总页数
-
- private long currentPage;//当前页
-
- private long countNumbers;//总条数
-
- private int pageSize=Constants.PAGE_SIZE;//分页大小
-
- public HelpPage(long currentPage,
- long countNumbers, int pageSize) {
- this.pageSize = pageSize;
- this.countNumbers = countNumbers;
- this.currentPage = currentPage;
- this.totalPages = getTatalPages(countNumbers, pageSize);
- this.limitOneValue = getLimitOneValue(currentPage, countNumbers, totalPages,pageSize);
- }
- public HelpPage(long currentPage,
- long countNumbers) {
- this.pageSize = getPageSize();
- this.countNumbers = countNumbers;
- this.currentPage = currentPage;
- this.totalPages = getTatalPages(countNumbers, pageSize);
- this.limitOneValue = getLimitOneValue(currentPage, countNumbers, totalPages,pageSize);
- }
-
- /**
- * 获取总页数 (页数从0 开始)
- *
- * @param orderCounts
- * 总条数
- * @return 总页数
- */
- private long getTatalPages(long countNumbers,int pageSize) {
- long totalPages = 0;
- if (countNumbers <= pageSize) {
- totalPages = 0;
- }
- if (countNumbers % pageSize == 0) {// 页数刚好是条数的总倍数
- totalPages = (countNumbers / pageSize) - 1;
- } else {
- totalPages = (countNumbers / pageSize);// 页数不是总条数的倍数
- }
- return totalPages;
- }
-
- /**
- * mysql limit ?,? 获取一个问号的值
- * @param currentPage 当前页
- * @param countNumbers总条数
- * @param tatalPages总页数
- *
- */
- private long getLimitOneValue(long currentPage, long countNumbers,
- long totalPages,int pageSize) {
-
- if (!isParameterLegitimacy(currentPage, countNumbers, pageSize)) {// 总页数小于 0 当前也超过总页数 当前页小于 0
- return -1;//不合法的分页参数校验
- }
- if (totalPages == 0) {// 如果就一页那么则 limit 第一个参数则为0;
- return 0;
- }
- long limtiStartNum = 0;
- if (currentPage <= totalPages) {
- limtiStartNum = (currentPage) * pageSize;
- }
- return limtiStartNum;
- }
-
- /**
- * 判断用户传过来的值是否合法
- * @param currentPage 当前页
- * @param countNumbers总条数
- * @param pageSize 页数大小
- *
- */
- public boolean isParameterLegitimacy(long currentPage, long countNumbers,int pageSize) {
- long totalPages = getTatalPages(countNumbers, pageSize);
- if (totalPages < 0 || currentPage > totalPages || currentPage < 0) {// 总页数小于 0 当前页超过总页数 当前页小于 0
- return false;// 不合法的分页参数校验
- }
- return true;
- }
-
- public long getLimitOneValue() {
- return limitOneValue;
- }
-
- public void setLimitOneValue(long limitOneValue) {
- this.limitOneValue = limitOneValue;
- }
-
- public long getTotalPages() {
- return totalPages;
- }
-
- public void setTotalPages(long totalPages) {
- this.totalPages = totalPages;
- }
-
- public long getCurrentPage() {
- return currentPage;
- }
-
- public void setCurrentPage(long currentPage) {
- this.currentPage = currentPage;
- }
-
- public long getCountNumbers() {
- return countNumbers;
- }
-
- public void setCountNumbers(long countNumbers) {
- this.countNumbers = countNumbers;
- }
-
- public int getPageSize() {
- return pageSize;
- }
-
- public void setPageSize(int pageSize) {
- this.pageSize = pageSize;
- }
-
- public static void main(String[] args) {
- HelpPage hp = new HelpPage(11, 122,11);
- System.out.println("总条数:"+hp.getCountNumbers());
- System.out.println("当前页:"+hp.getCurrentPage());
- System.out.println("limit第一个参数:"+hp.getLimitOneValue());
- System.out.println("页数大小:"+hp.getPageSize());
- System.out.println("总页数:"+hp.getTotalPages());
-
- }
- }
复制代码 |
|