PageHelper直接對List進行分頁的方法


轉自:https://blog.csdn.net/zser567/article/details/105388029

問題背景:PageHelper的分頁只有在

PageHelper.startPage(pageNum,pageSize);

之后的數據庫查詢語句才起作用,原因是PageHelper的實現原理是在數據庫查詢過程中通過攔截器攔截處理。

在我當前的項目中,需要對本地已經緩存好的ArrayList進行分頁,減少數據庫操作。方法有兩種:

第一種:

重新自定義PageInfo類,能解決問題,但是比較繁瑣,不探究。

第二種:(推薦)

直接用PageHelper的類來實現,代碼如下:

 1 //創建Page類
 2 Page page = new Page(pageNum, pageSize);
 3 //為Page類中的total屬性賦值
 4 int total = CacheRegion.noticeList.size();
 5 page.setTotal(total);
 6 //計算當前需要顯示的數據下標起始值
 7 int startIndex = (pageNum - 1) * pageSize;
 8 int endIndex = Math.min(startIndex + pageSize,total);
 9 //從鏈表中截取需要顯示的子鏈表,並加入到Page
10 page.addAll(CacheRegion.noticeList.subList(startIndex,endIndex));
11 //以Page創建PageInfo
12 PageInfo pageInfo = new PageInfo<>(page);
13 //將數據傳回前端
14 modelAndView.addObject("pageInfo", pageInfo);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM