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 當(dāng)前頁
*/
private int currentPage = 1;
/**
* pageSize 每頁大小
*/
private int pageSize = 10;
/**
* pageTotal 總頁數(shù)
*/
private int pageTotal;
/**
* recordTotal 總條數(shù)
*/
private int recordTotal = 0;
/**
* previousPage 前一頁
*/
private int previousPage;
/**
* nextPage 下一頁
*/
private int nextPage;
/**
* firstPage 第一頁
*/
private int firstPage = 1;
/**
* lastPage 最后一頁
*/
private int lastPage;
/**
* content 每頁的內(nèi)容
*/
private List<T> content;
// 以下set方式是需要賦值的
/**
* 設(shè)置當(dāng)前頁 <br>
*
* @author kangxu
*
* @param currentPage
*/
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
/**
* 設(shè)置每頁大小,也可以不用賦值,默認(rèn)大小為10條 <br>
*
* @author kangxu
*
* @param pageSize
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/**
* 設(shè)置總條數(shù),默認(rèn)為0 <br>
*
* @author kangxu
*
* @param recordTotal
*/
public void setRecordTotal(int recordTotal) {
this.recordTotal = recordTotal;
otherAttr();
}
/**
* 設(shè)置分頁內(nèi)容 <br>
*
* @author kangxu
*
* @param content
*/
public void setContent(List<T> content) {
this.content = content;
}
/**
* 設(shè)置其他參數(shù)
*
* @author kangxu
*
*/
public void otherAttr() {
// 總頁數(shù)
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;
/**
* 分頁數(shù)據(jù)測(cè)試
* <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);
}
}
以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
相關(guān)文章
Java中Stream流中map和forEach的區(qū)別詳解
本文主要介紹了Java中Stream流中map和forEach的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04
Java可以如何實(shí)現(xiàn)文件變動(dòng)的監(jiān)聽的示例
本篇文章主要介紹了Java可以如何實(shí)現(xiàn)文件變動(dòng)的監(jiān)聽的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02
Java中的CopyOnWriteArrayList深入解讀
這篇文章主要介紹了Java中的CopyOnWriteArrayList深入解讀,在 ArrayList 的類注釋上,JDK 就提醒了我們,如果要把 ArrayList 作為共享變量的話,是線程不安全的,需要的朋友可以參考下2023-12-12
SpringMVC的簡(jiǎn)單傳值(實(shí)現(xiàn)代碼)
下面小編就為大家?guī)硪黄猄pringMVC的簡(jiǎn)單傳值(實(shí)現(xiàn)代碼)。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
Mybatis空值關(guān)聯(lián)的具體實(shí)現(xiàn)
在復(fù)雜的數(shù)據(jù)庫查詢中,處理空值關(guān)聯(lián)是一項(xiàng)常見的需求,本文就來介紹一下Mybatis空值關(guān)聯(lián)的具體實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-07-07
spring-boot中使用spring-boot-devtools的實(shí)現(xiàn)代碼
這篇文章主要介紹了spring-boot中使用spring-boot-devtools的實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
Java中Dijkstra算法求解最短路徑的實(shí)現(xiàn)
Dijkstra算法是一種解決最短路徑問題的常用算法,本文主要介紹了Java中Dijkstra算法求解最短路徑的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-09-09

