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