您好,登錄后才能下訂單哦!
實現原理很簡單,就是建立一個Page類,里面放當前訪問的頁數(這個是從客戶瀏覽器傳到后臺的數據,所以你的分頁需要用它來定位記錄的條目)和每一頁顯示的記錄行數。
然后通過分頁計算就可以得出下列數據。(假定你的頁數從1開始)
1、總頁數 = 總記錄數/每頁大小,如果0!=總記錄數%每頁大小,那么總頁數再+1
2、當前頁數(從瀏覽器傳遞的參數中獲得)
3、表記錄的起始位置=(當前頁數-1)*每頁大小
4、總記錄數(select count(*) from [表名] [where [條件]],從數據庫中查詢得到)
5、每頁大小,可以固定,也可以從頁面傳過來有了這幾個參數之后,就用sql語句查出對應的記錄就可以了。
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; } }
以上就是java分頁怎么寫的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。