1. 前端開發 需要根據把後台數據列表 分頁顯示
搭建項目分頁
1.jsp頁面
<tr>
<td bgcolor="#00ffff" colspan="10" align="center">
第${pager.currentPage}頁
每頁${pager.pageSize} 條記錄
共${pager.totalPages}頁
共${pager.totalRows} 條
<a href="servlet/UserServlet?num=1&page=1" >首頁</a>
<a href="servlet/UserServlet?num=1&page=${pager.currentPage-1}">上一頁</a>
<a href="servlet/UserServlet?num=1&page=${pager.currentPage+1}">下一頁</a>
<a href="servlet/UserServlet?num=1&page=${pager.totalPages}">末頁</a>
</td>
</tr>
2.拼接sql語句
SELECT * FROM USERS LEFT JOIN DEPT ON USERDEPT=DEPTNUM
SELECT * FROM(SELECT A.*, ROWNUM RN FROM (SELECT * FROM student) A WHERE ROWNUM <=15)WHERE RN >=11 ORDER BY ENTERDATE
分頁sql:SELECT * FROM(SELECT A.*, ROWNUM RN FROM (SELECT * FROM USERS LEFT JOIN DEPT ON USERDEPT=DEPTNUM) A WHERE ROWNUM <=15)WHERE RN >=11 ORDER BY ENTERDATE
3.分頁工具類導入到common包:Pager.java
在servlet調用:第一個條件:總條數 第二個條件:當前頁數
String page = request.getParameter("page");
//分頁調用開始--------------------------------
Pager pager = new Pager();
int totalRows = userService.getCountRows();
pager.setTotalRows(totalRows);
if(null != page){
pager.setCurrentPage(Integer.parseInt(page));
}else{
pager.setCurrentPage(1);
}
request.setAttribute("pager", pager);//給頁面分頁賦值
4.把pager工具類傳遞到,拼接執行動態分頁sql語句
開始條數:pager.getStartRow()
結束條:pager.getCurrentPage()*pager.getPageSize()
String sql="SELECT * FROM(SELECT A.*, ROWNUM RN FROM (SELECT * FROM USERS LEFT JOIN DEPT ON USERDEPT=DEPTNUM) A WHERE ROWNUM <="+pager.getCurrentPage() *pager.getPageSize()+")WHERE RN >="+pager.getStartRow();//分頁sql 1-3條
分頁根本條件:
private int totalRows; //總行數
private int pageSize = 5; //每頁顯示的行數
private int currentPage=1; //當前頁號
private int totalPages; //總頁數
private int startRow; //當前頁在資料庫中的起始行
private int endRow; //資料庫執行sql的結束行
totalPages演算法:
if(totalRows<=pageSize){
totalPages=1;
}else{
totalPages=(totalRows+pageSize-1)/pageSize;
}
startRow; 演算法:
startRow=(currentPage-1) * pageSize+1;
endRow; endRow=currentPage* pageSize;
2. 關於前端分頁的一些問題
你可以後端寫個服務方法,這個方法返回的內容就是分頁數組信息,然後前端頁面 在頁面開始載入時,利用 ajax 非同步請求這個服務方法獲取到 分頁信息。