一、PageHelper分頁使用避免的坑
1、PageHelper使用時,最好將它放在查詢語句的前面,如果放在查詢語句後面可能會出現分頁後查詢出來的數據不正確的問題。
2、盡量避免在PageHelper的配置文件(pagehelper.properties或者mybatis-config.xml)中配置dialect屬性,最好是在代碼中設置dialect屬性,因為在不同的環境下可能需要設置不同的dialect屬性。
3、在分頁查詢的時候,一定要傳入Page對象;同時,在select語句中,需要使用Page對象的startPage方法開始分頁,結尾處使用pageHelper.endPage()方法。
二、PageHelper分頁怎麼用
在使用PageHelper進行分頁操作的時候,需要在查詢語句前面添加startPage方法,用來指定當前頁碼以及每頁顯示的記錄數。同時,在查詢之後需要添加endPage方法,以便正確地釋放資源。
下面是分頁查詢的示例:
public PageInfo getUserList(int pageNum, int pageSize) { // 開始分頁 PageHelper.startPage(pageNum, pageSize); List userList = userDao.getUserList(); // 結束分頁 PageHelper.endPage(); return new PageInfo(userList); }
三、PageHelper分頁使用第二個SQL分頁
在特殊情況下,可能需要使用第二個sql語句進行分頁操作,這種情況下,我們可以通過PageHelper提供的靜態方法localPage來實現第二個sql語句的分頁。
public PageInfo getUserList(int pageNum,int pageSize){ int offset = (pageNum-1)*pageSize; String sql = "select * from user limit ?,?"; List userList = SqlHelper.executeForListSql(sql, offset,pageSize); // 簡單的使用localPage就能實現第二個sql語句的分頁 PageHelper.localPage(offset,pageSize); return new PageInfo(userList); }
四、PageHelper分頁使用SQL查不出數據
在使用PageHelper進行分頁操作時,如果查詢的總記錄數為0,則會出現Page對象的total屬性為0的情況。
public PageInfo getUserList(int pageNum,int pageSize){ //這是一種錯誤的做法 if(userDao.getUserList().size() == 0){ return new PageInfo(null); } //開啟分頁 PageHelper.startPage(pageNum,pageSize); List userList = userDao.getUserList(); //結束分頁 PageHelper.endPage(); return new PageInfo(userList); }
這種情況下,應該拋出異常或者返回null,不能直接返回PageInfo對象,因為此時的PageInfo對象的total屬性為0。
public PageInfo getUserList(int pageNum,int pageSize){ if(userDao.getUserList().size() == 0){ throw new RuntimeException("查詢數據為空!"); } //開啟分頁 PageHelper.startPage(pageNum,pageSize); List userList = userDao.getUserList(); //結束分頁 PageHelper.endPage(); return new PageInfo(userList); }
五、PageHelper分頁條
PageHelper提供了默認的分頁條,我們也可以自定義分頁條的樣式。
.pagination>li>a, .pagination>li>span {
position: relative;
float: left;
padding: 6px 12px;
margin-left: -1px;
line-height: 1.42857143;
text-decoration: none;
background-color: #fff;
border: 1px solid #ddd;
}
- <a href="">«
- <a href="">»
- /
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/310013.html