Java分页工具类及其使用(示例分享)
作者:kangxu 时间:2021-12-13 10:25:12
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);
}
}
来源:http://www.cnblogs.com/kangxu/p/6248027.html
标签:Java,分页,工具类
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java之InputStreamReader类的实现
2023-09-03 01:28:17
Java8中LocalDateTime与时间戳timestamp的互相转换
2023-11-10 05:20:21
详解MyBatis XML配置解析
2023-11-23 13:02:09
![](https://img.aspxhome.com/file/2023/7/59887_0s.png)
java生成图片验证码功能
2023-06-27 00:31:55
![](https://img.aspxhome.com/file/2023/4/60994_0s.png)
java ThreadGroup的作用及方法详解
2022-02-03 16:49:01
![](https://img.aspxhome.com/file/2023/2/60762_0s.jpg)
Android WebView无法弹出软键盘的原因及解决办法
2023-07-07 18:30:00
线程局部变量的实现 ThreadLocal使用及场景介绍
2023-11-10 03:19:26
![](https://img.aspxhome.com/file/2023/1/59031_0s.jpg)
javaweb Servlet开发总结(二)
2023-10-31 11:51:48
![](https://img.aspxhome.com/file/2023/7/58567_0s.png)
详解Java包装类及自动装箱拆箱
2023-11-14 21:13:23
SpringBoot中多环境配置和@Profile注解示例详解
2023-11-29 05:39:04
浅谈Java消息队列总结篇(ActiveMQ、RabbitMQ、ZeroMQ、Kafka)
2022-06-13 01:30:40
![](https://img.aspxhome.com/file/2023/8/60698_0s.jpg)
Java7到Java17之Switch语句进化史示例详解
2021-11-03 18:47:37
JAVA抽象类,接口,内部类详解
2023-11-09 16:37:25
Java如何基于ProcessBuilder类调用外部程序
2023-11-27 20:19:57
![](https://img.aspxhome.com/file/2023/0/59210_0s.png)
Jersey Restful接口如何获取参数的问题
2023-10-29 14:44:16
Java面试题冲刺第二十二天-- Nginx
2023-11-16 13:43:48
![](https://img.aspxhome.com/file/2023/6/58916_0s.png)
轻松学习C#的方法
2023-06-21 13:22:32
![](https://img.aspxhome.com/file/2023/3/66573_0s.jpg)
java8新特性之日期时间API
2023-06-20 09:15:50
![](https://img.aspxhome.com/file/2023/2/57602_0s.png)
hadoop实现grep示例分享
2023-12-24 05:31:04
Flutter添加页面过渡动画实现步骤
2023-08-20 09:06:20
![](https://img.aspxhome.com/file/2023/1/94991_0s.png)