1,建立一個Page類,getset方法前端
2.查詢出數據庫所須要分頁的數據總數目totalCountsql
3.計算 總頁數 totalPage,總 數目已經獲得,當前頁數和 每頁顯示的數目是前端傳過來的,看下圖發現規律數據庫
總數/每頁顯示的數目 的結果 往上靠一點 就是總頁數 能夠利用 Math.ceil方法計算得出函數
總數 每頁現實數目 總頁數 9 10 0.9 1 10 10 1 11 10 1.1 2
//2.根據 總數目 和 當前 顯示數目 計算總頁數 int totalPage = (int) Math.ceil(1.0 * totalCount / currentCount);
4.把獲得的數據全封裝到Page類中spa
5.在利用limit函數以前 ,計算出起始位置code
公式:(當前頁數 -1 )*每頁顯示的數目blog
/* 頁數 每頁顯示的條數 起始位置 1 3 0 2 3 3 3 3 6 */ //4.計算起始位置 int startIndex = (currentPage - 1) * currentCount;
6.利用 limit函數get
ComboPooledDataSource dataSource = new ComboPooledDataSource(); QueryRunner queryRunner = new QueryRunner(dataSource); String sql = "SELECT * FROM category LIMIT ?,?"; List<Category> list = queryRunner.query(sql, new BeanListHandler<Category>(Category.class), startIndex, currentCount)7.
//6.將集合 封裝到page類中 page.setList(findPageList);
8.將數據 返回到前端,前端分頁能夠用Bootstrap來作it
<nav> <ul class="pagination"> <li> <a href="#" aria-label="Previous" > <span aria-hidden="true">«</span> </a> </li> <li > <a href="#" aria-label="Previous" > <span aria-hidden="true">‹</span> </a> </li> <c:forEach begin="1" end="${page.totalCount}" varStatus="status"> <li> <a href="?start=${status.index}" class="current">${status.count}</a> </li> </c:forEach> <li > <a href="#" aria-label="Next"> <span aria-hidden="true">›</span> </a> </li> <li > <a href="#" aria-label="Next"> <span aria-hidden="true">»</span> </a> </li> </ul> </nav>