关于PageHelper的使用
遇见的问题
在springboot中一定要引入springboot的这个坐标,不然会配置文件不生效,
从而使分页查询不生效
页数从 1 开始
在springboot中要引入的坐标是
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.3</version>
</dependency>
配置文件中要加入
1.当用application.properties时
#pagehelper分页插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
2.当用application.properties时
# 分页配置
pagehelper:
helperDialect: mysql #什么数据库
reasonable: true #分页合理化参数,默认值为 false 。当该参数设置为 true 时, pageNum<=0 时会查询第一页 pageNum>pages (超过总数时),会查询最后一页。默认 false 时,直接根据参数进行查询。
supportMethodsArguments: true #支持通过 Mapper 接口参数来传递分页参数,默认值 false ,分页插件会从查询方法的参数值中,自动根据上面 params 配置的字段中取值,查找到合适的值时就会自动分页。
params: count=countSql #为了支持 startPage(Object params) 方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值, 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable ,不配置映射的用默认值, 默认值为 pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero= pageSizeZero 。
在java代码中直接用就ok了
PageHelper.startPage(queryPage.getPageSum(),queryPage.getPageSize());
Page<User> pageInfo = userMapper.listPage();
//当前页
int pageNum = pageInfo.getPageNum();
//当前页个数
int pageSize = pageInfo.getPageSize();
//总共多少条数据
long total = pageInfo.getTotal();
//返回的数据
List<User> result = pageInfo.getResult();