概述:
分页处理在开发中是比较常见,如果纯用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();
等等