概述:
分頁處理在開發中是比較常見,如果純用sql語句 limit m, n; 操作起來比較麻煩,還需要加入邏輯處理,這時候用PageHelper就比較方便了,下面介紹下如何集成PageHelper進行分頁處理
集成步驟:
1、pom.xml引入:
<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.10</version>
</dependency>
2、在application.properties中進行屬性配置:
#pagehelper
pagehelper.helper-dialect=mysql
pagehelper.reasonable=true
pagehelper.support-methods-arguments=true
pagehelper.params=count=countSql
參數解釋:
helper-dialect: 必填值,表示選用哪種數據源,可以寫oracle, mysql, sqlite, hsqldb, postgresql, sqlserver,沒有默認值
reasonable: 合理化,默認爲false,設置true時 如果傳入pageNum<1時 會查詢第一頁,pageNum>pages時會查詢最後一頁,如果使用默認值false,則當參數不合理時 會返回空數據
support-methods-arguments:默認值false,分頁插件會從查詢方法的參數值中,自動根據上面 params 配置的字段中取值,查找到合適的值時就會自動分頁。
params:用於從對象中根據屬性名取值, 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默認值, 默認值爲pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero
這樣其實就已經集成好了PageHelper
使用:
在調用查詢前設置分頁值:
PageHelper.startPage(1, 100);
List<User> users = userDao.getUsers();
PageHelper.startPage爲靜態方法,第一個參數代表第幾頁,第二個參數代表每頁有多少數據
這時的users就是分頁後的數據,可以動手自己試一下
如果想要獲取更多的分頁信息,可以new一個PageInfo對象,具體如下:
PageInfo<User> pageInfo = new PageInfo<>(users);
int total = pageInfo.getTotal();
int pages = pageInfo.getPages();
等等