一、從多個方面闡述PageHelper獲取總條數
PageHelper是一款用於MyBatis分頁插件的工具庫,對於分頁操作提供了十分便捷的支持。獲取總條數是分頁操作的一項關鍵步驟,下面將從多個方面詳細介紹PageHelper獲取總條數:
二、PageHelper獲取總條數失效
在使用PageHelper進行分頁操作時,如果獲取總條數失效,通常是由於以下幾個原因:
1、SQL語句沒有進行正確的處理,需要在SQL語句中加入pagehelper自定義的注釋,這個注釋中加入Count 屬性,如下所示:
SELECT title, content, created_at FROM article WHERE id > 0 <!-- 在這裡加入pagehelper注釋,count屬性用於分頁計數 -->
2、Dao層當中沒有調用PageHelper.startPage() 方法來啟用分頁插件,代碼示例如下:
public ListfindByPage(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); return articleMapper.selectByExample(new ArticleExample()); }
3、調用Dao層方法時沒有傳入PageInfo 類型的參數,示例如下:
public PageInfofindByPage(int pageNum, int pageSize) { PageHelper.startPage(pageNum, pageSize); List list = articleMapper.selectByExample(new ArticleExample()); return new PageInfo(list); }
三、PageHelper獲取總條數
PageHelper獲取總條數的方式也有多種,下面將針對其中的兩種方式進行詳細介紹:
1、使用PageInfo獲取總條數:
PageInfopageInfo = new PageInfo(list); long total = pageInfo.getTotal();
2、使用PageInterceptor獲取總條數:
Page page = (Page) list; long total = page.getTotal();
四、PageHelper獲取總條數效率很低
在對大量數據進行分頁操作時,PageHelper獲取總條數的效率會受到很大的影響,導致頁面載入速度緩慢。為此,可以考慮以下兩種優化方式:
1、使用count語句獲取總條數:
PageHelperHelper.offsetPage(pageNum, pageSize, false); long total = articleMapper.countByExample(new ArticleExample()); Listlist = articleMapper.selectByExample(new ArticleExample()); PageInfo pageInfo = new PageInfo(list); pageInfo.setTotal(total);
2、使用靜態變數緩存總條數:
private static Long total = null; public ListfindByPage(int pageNum, int pageSize) { if (total == null) { total = articleMapper.countByExample(new ArticleExample()); } PageHelper.startPage(pageNum, pageSize); List list = articleMapper.selectByExample(new ArticleExample()); PageInfo pageInfo = new PageInfo(list); pageInfo.setTotal(total); return list; }
五、PageHelper查詢總條數選取
在使用PageHelper獲取總條數的過程中,會出現一些問題。因此在使用PageHelper進行分頁操作時,可以選用以下幾種獲取總條數的方式:
1、使用PageInfo獲取總條數
2、使用PageInterceptor獲取總條數
3、使用count語句獲取總條數
4、使用靜態變數緩存總條數
綜上所述,通過本文的介紹,讀者可以更加深入地了解PageHelper獲取總條數的具體過程。同時,本文也為讀者提供了多種優化方式,幫助讀者解決分頁操作中總條數獲取效率低的問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/206954.html