Java分页工具类及其使用(示例分享)

 更新时间:2017年01月04日 14:25:44   作者:kangxu  
本篇文章主要分享了Java分页工具类及其使用的示例代码,具有一定的参考价值,下面跟着小编一起来看下吧

Pager.java

package pers.kangxu.datautils.common;
import java.io.Serializable;
import java.util.List;
/**
 * 
 * <b> 分页通用类 </b>
 * 
 * @author kangxu
 * @param <T>
 * 
 */
public class Pager<T> implements Serializable {
 /**
 * 
 */
 private static final long serialVersionUID = 4542617637761955078L;
 /**
 * currentPage 当前页
 */
 private int currentPage = 1;
 /**
 * pageSize 每页大小
 */
 private int pageSize = 10;
 /**
 * pageTotal 总页数
 */
 private int pageTotal;
 /**
 * recordTotal 总条数
 */
 private int recordTotal = 0;
 /**
 * previousPage 前一页
 */
 private int previousPage;
 /**
 * nextPage 下一页
 */
 private int nextPage;
 /**
 * firstPage 第一页
 */
 private int firstPage = 1;
 /**
 * lastPage 最后一页
 */
 private int lastPage;
 /**
 * content 每页的内容
 */
 private List<T> content;
 // 以下set方式是需要赋值的
 /**
 * 设置当前页 <br>
 * 
 * @author kangxu
 * 
 * @param currentPage
 */
 public void setCurrentPage(int currentPage) {
 this.currentPage = currentPage;
 }
 /**
 * 设置每页大小,也可以不用赋值,默认大小为10条 <br>
 * 
 * @author kangxu
 * 
 * @param pageSize
 */
 public void setPageSize(int pageSize) {
 this.pageSize = pageSize;
 }
 /**
 * 设置总条数,默认为0 <br>
 * 
 * @author kangxu
 * 
 * @param recordTotal
 */
 public void setRecordTotal(int recordTotal) {
 this.recordTotal = recordTotal;
 otherAttr();
 }
 /**
 * 设置分页内容 <br>
 * 
 * @author kangxu
 * 
 * @param content
 */
 public void setContent(List<T> content) {
 this.content = content;
 }
 /**
 * 设置其他参数
 * 
 * @author kangxu
 * 
 */
 public void otherAttr() {
 // 总页数
 this.pageTotal = this.recordTotal % this.pageSize > 0 ? this.recordTotal / this.pageSize + 1 : this.recordTotal / this.pageSize;
 // 第一页
 this.firstPage = 1;
 // 最后一页
 this.lastPage = this.pageTotal;
 // 前一页
 if (this.currentPage > 1) {
 this.previousPage = this.currentPage - 1;
 } else {
 this.previousPage = this.firstPage;
 }
 // 下一页
 if (this.currentPage < this.lastPage) {
 this.nextPage = this.currentPage + 1;
 } else {
 this.nextPage = this.lastPage;
 }
 }
 // 放开私有属性
 public int getCurrentPage() {
 return currentPage;
 }
 public int getPageSize() {
 return pageSize;
 }
 public int getPageTotal() {
 return pageTotal;
 }
 public int getRecordTotal() {
 return recordTotal;
 }
 public int getPreviousPage() {
 return previousPage;
 }
 public int getNextPage() {
 return nextPage;
 }
 public int getFirstPage() {
 return firstPage;
 }
 public int getLastPage() {
 return lastPage;
 }
 public List<T> getContent() {
 return content;
 }
 @Override
 public String toString() {
 return "Pager [currentPage=" + currentPage + ", pageSize=" + pageSize
 + ", pageTotal=" + pageTotal + ", recordTotal=" + recordTotal
 + ", previousPage=" + previousPage + ", nextPage=" + nextPage
 + ", firstPage=" + firstPage + ", lastPage=" + lastPage
 + ", content=" + content + "]";
 }
}

使用 PagerTester.java

package pers.kangxu.datautils.utils;
import java.util.ArrayList;
import java.util.List;
import pers.kangxu.datautils.common.Pager;
/**
 * 分页数据测试
 * <b>
 *
 * </b>
 * @author kangxu
 *
 */
public class PagerTester {
 public static void main(String[] args) {
 Pager<String> pager = new Pager<String>();
 List<String> content = new ArrayList<String>();
 content.add("str1");
 content.add("str2");
 content.add("str3");
 content.add("str4");
 content.add("str5");
 content.add("str6");
 content.add("str7");
 content.add("str8");
 content.add("str9");
 content.add("str10");
 pager.setCurrentPage(1);
 pager.setPageSize(10);
 pager.setRecordTotal(62);
 pager.setContent(content);
 System.out.println(pager);
 }
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

相关文章

  • 修改若依框架Token的过期时间问题

    修改若依框架Token的过期时间问题

    本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎支持脚本之家
    2025-02-02
  • Java concurrency之非公平锁_动力节点Java学院整理

    Java concurrency之非公平锁_动力节点Java学院整理

    本篇文章主要介绍了Java concurrency之非公平锁,详细的介绍了获取和释放非公平锁,有兴趣的同学可以了解一下
    2017-06-06
  • 如何设置springboot禁止日志输出到控制台

    如何设置springboot禁止日志输出到控制台

    文章总结:本文主要介绍了SpringBoot项目中使用SLF4J记录日志时,日志默认输出到控制台的原因及解决方法,日志框架如Logback默认会将日志输出到控制台,可以通过`logback-spring.xml`配置文件或配置类来禁止日志输出到控制台,并设置日志输出级别
    2025-01-01
  • Day14基础不牢地动山摇-Java基础

    Day14基础不牢地动山摇-Java基础

    这篇文章主要给大家介绍了关于Java中方法使用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-08-08
  • springboot+mybatis-plus 两种方式打印sql语句的方法

    springboot+mybatis-plus 两种方式打印sql语句的方法

    这篇文章主要介绍了springboot+mybatis-plus 两种方式打印sql语句的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-10-10
  • java web response提供文件下载功能的实例讲解

    java web response提供文件下载功能的实例讲解

    下面小编就为大家分享一篇java web response提供文件下载功能的实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • SpringBoot使用Sa-Token实现账号封禁、分类封禁、阶梯封禁的示例代码

    SpringBoot使用Sa-Token实现账号封禁、分类封禁、阶梯封禁的示例代码

    本文主要介绍了SpringBoot使用Sa-Token实现账号封禁、分类封禁、阶梯封禁的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • JAVA控制流程break continue的示例代码

    JAVA控制流程break continue的示例代码

    JAVA流程控制中有相关代码可以终止整个流程的进程,他们就是(break和continue),本文通过实例代码介绍下JAVA控制流程break continue的相关知识,感兴趣的朋友一起看看吧
    2022-03-03
  • JVM内存飙升线上问题排查方式

    JVM内存飙升线上问题排查方式

    文章主要介绍了线上CMS服务内存增长问题的排查过程,通过分析GC日志和堆栈快照,定位问题为Nacos的NamingService对象无法回收和MySQL的CallableStatement对象增长迅速,最终通过将NamingService改为单例模式解决了内存增长问题
    2025-03-03
  • 浅析SpringBoot统一返回结果的实现

    浅析SpringBoot统一返回结果的实现

    前后端开发过程中数据交互规范化是一件非常重要的事情,不仅可以减少前后端交互过程中出现的问题,也让代码逻辑更加具有条理,下面小编就和大家讲讲SpringBoot如何统一返回结果的吧
    2023-07-07

最新评论