這期內容當中小編將會給大家帶來有關java實現分頁的方法,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
實現原理很簡單,就是建立一個Page類,里面放當前訪問的頁數(這個是從客戶瀏覽器傳到后臺的數據,所以你的分頁需要用它來定位記錄的條目)和每一頁顯示的記錄行數。
然后通過分頁計算就可以得出下列數據。(假定你的頁數從1開始)
1、總頁數 = 總記錄數/每頁大小,如果0!=總記錄數%每頁大小,那么總頁數再+1
2、當前頁數(從瀏覽器傳遞的參數中獲得)
3、表記錄的起始位置=(當前頁數-1)*每頁大小
4、總記錄數(select count(*) from [表名] [where [條件]],從數據庫中查詢得到)
5、每頁大小,可以固定,也可以從頁面傳過來有了這幾個參數之后,就用sql語句查出對應的記錄就可以了。
mysql數據庫用limit 表記錄的起始位置,每頁大小 語句添加到你的查詢語句最后面sqlserver數據庫用top語句和not in 來做
oracle數據庫用rownum來做
具體代碼如下:
public class Page {
private long totalCount = 0;// 總記錄數
private int pageNumber = 1;// 當前頁號,默認顯示第一頁
private int pageSize = 20; // 每頁大小,默認每頁20條
private int totalPage = 0;// 總頁數,默認為0
private int startRow = 0;// 起始記錄行號,默認為從表頭開始
/**
* 分頁計算方法,由setTotalCount調用
*/
public void pagination() {
// 計算總頁數
if (this.totalCount % pageSize == 0)
this.totalPage = new Long(this.totalCount / pageSize).intValue();
else
this.totalPage = new Long(this.totalCount / pageSize).intValue() + 1;
// 排除錯誤頁號
if (this.pageNumber < 1)
this.pageNumber = 1;
if (this.pageNumber > this.totalPage)
this.pageNumber = this.totalPage;
// 計算起始行號
this.startRow = (this.pageNumber - 1) * this.pageSize;
}
public long getTotalCount() {
return totalCount;
}
public void setTotalCount(long totalCount) {
this.totalCount = totalCount;
this.pagination();
}
public int getPageNumber() {
return pageNumber;
}
public void setPageNumber(int pageNumber) {
this.pageNumber = pageNumber;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public int getStartRow() {
return startRow;
}
public void setStartRow(int startRow) {
this.startRow = startRow;
}
}前端采用jsp,通過html和計算得出的數據進行分頁展示即可。
上述就是小編為大家分享的java實現分頁的方法了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。