搭建基礎架構-Page
/**
* 分頁物件. 包含當前頁資料及分頁資訊如總記錄數.
* 能夠支援JQuery EasyUI直接對接,能夠支援和BootStrap Table直接對接
*/
public class Page<T> implements Serializable {
private static final long serialVersionUID = 1L;
private static final int DEFAULT_PAGE_SIZE = 20;
private int pageSize = DEFAULT_PAGE_SIZE; // 每頁的記錄數
private long start; // 當前頁第一條資料在List中的位置,從0開始
private List<T> rows; // 當前頁中存放的記錄,型別一般為List
private long total; // 總記錄數
/**
* 構造方法,只構造空頁.
*/
public Page() {
this(0, 0, DEFAULT_PAGE_SIZE, new ArrayList<T>());
}
/**
* 預設構造方法.
*
* @param start
* 本頁資料在資料庫中的起始位置
* @param totalSize
* 資料庫中總記錄條數
* @param pageSize
* 本頁容量
* @param rows
* 本頁包含的資料
*/
public Page(long start, long totalSize, int pageSize, List<T> rows) {
this.pageSize = pageSize;
this.start = start;
this.total = totalSize;
this.rows = rows;
}
/**
* 取總記錄數.
*/
public long getTotal() {
return this.total;
}
public void setTotal(long total) {
this.total = total;
}
/**
* 取總頁數.
*/
public long getTotalPageCount() {
if (total % pageSize == 0){
return total / pageSize;
}else{
return total / pageSize + 1;
}
}
/**
* 取每頁資料容量.
*/
public int getPageSize() {
return pageSize;
}
/**
* 取當前頁中的記錄.
*/
public List<T> getRows() {
return rows;
}
public void setRows(List<T> rows) {
this.rows = rows;
}
/**
* 取該頁當前頁碼,頁碼從1開始.
*/
public long getPageNo() {
return start / pageSize + 1;
}
/**
* 該頁是否有下一頁.
*/
public boolean hasNextPage() {
return this.getPageNo() < this.getTotalPageCount() - 1;
}
/**
* 該頁是否有上一頁.
*/
public boolean hasPreviousPage() {
return this.getPageNo() > 1;
}
/**
* 獲取任一頁第一條資料在資料集的位置,每頁條數使用預設值.
*
* @see #getStartOfPage(int,int)
*/
protected static int getStartOfPage(int pageNo) {
return getStartOfPage(pageNo, DEFAULT_PAGE_SIZE);
}
/**
* 獲取任一頁第一條資料在資料集的位置.
*
* @param pageNo
* 從1開始的頁號
* @param pageSize
* 每頁記錄條數
* @return 該頁第一條資料
*/
public static int getStartOfPage(int pageNo, int pageSize) {
return (pageNo - 1) * pageSize;
}
}
相關文章
- 搭建基礎架構-ResultMsg架構
- MyBatis 基礎搭建及架構概述MyBatis架構
- PostgreSQL Page頁結構解析(1)-基礎SQL
- MySQL 基礎架構MySql架構
- MySQL基礎架構MySql架構
- 零基礎用GitHub page搭建靜態部落格Github
- 架構設計之一——基礎架構架構
- Spring Cloud雲架構-Restful 基礎架構SpringCloud架構REST
- 探索ABP基礎架構架構
- redis哨兵架構基礎Redis架構
- MySQL基礎架構分析MySql架構
- MySQL之基礎架構MySql架構
- 《SpringBoot 基礎架構師》Spring Boot架構
- 《架構基礎 從需求到架構》讀書架構
- 《大前端 基礎元件》系列 CSS基礎架構前端元件CSS架構
- HBase架構與基礎命令架構
- 探索ABP基礎架構-下架構
- IT架構的基礎實施架構
- ES 架構及基礎 - 1架構
- 基礎架構遷雲(三)架構
- 基礎架構遷雲(一)架構
- 基礎架構遷雲二()架構
- Mysql實戰:基礎架構MySql架構
- HotDB 基礎架構詳解架構
- Python基礎知識架構Python架構
- Angular基礎筆記(架構)Angular筆記架構
- RESTful 架構 基礎講解REST架構
- 銀行IT架構變遷史(金融IT基礎架構)架構
- SpringBoot2搭建基礎架構——開源軟體誕生4Spring Boot架構
- 基礎架構之百變魔方架構
- 剖析ElasticSearch基礎分散式架構Elasticsearch分散式架構
- MySQL基礎架構和事務MySql架構
- MySQL基礎架構執行流程MySql架構
- Zoopkeeper基礎(一):架構和元件OOP架構元件
- 朱曄的網際網路架構實踐心得S2E7:漫談平臺架構的工作(基礎架構、基礎服務、基礎平臺、基礎中介軟體等等)架構
- mysql資料庫的基礎架構MySql資料庫架構
- 什麼叫超融合基礎架構?架構
- 大資料基礎架構總結大資料架構