SpringBoot集成PageHelper
Mybatis框架有多方便大家都清楚,在SpringBoot中,通过使用PageHelper插件可以帮助我们轻松的实现分页功能。
引入依赖
可以到Github上找到PageHelper项目,里面包含了对各种不同环境的解决方案。
项目网址:https://github.com/abel533/MyBatis-Spring-Boot
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.3.0</version>
</dependency>
配置文件
需要在application.yml中对PageHelper进行配置,配置可以直接复制下面的内容。我所使用的数据库为mysql
pagehelper:
helperDialect: mysql
reasonable: true
supportMethodsArguments: true
pageSizeZero: false #pageSize=0
使用
使用PageHelper的方式十分简单,DAO层不需要改动,只需要在Controller层添加即可,我这里测试PageHelper直接调用了mapper
public JSONResult testPageHelper(@RequestParam(defaultValue = "1") int pageNum,@RequestParam(defaultValue = "10") int pageSize){
CourseExample courseExample = new CourseExample();
CourseExample.Criteria criteria = courseExample.createCriteria();
criteria.andTitleIsNotNull();
PageHelper.startPage(pageNum,pageSize);
PageInfo pageInfo = new PageInfo(courseMapper.selectByExample(courseExample));
return JSONResult.custom("0","分页测试",pageInfo);
}
前端调用时需要传递pageNum和pageSize两个参数,分别是页码和每页的大小,如果请求中没有传递这两个参数则默认为1和10.(默认从第1页开始)
查询结果,根据分页的不同,可以分别显示想要查找的信息页数、限定每页的数量。可以从返回的结果中看到包含的分页信息PageInfo

原理
PageHelper实际是通过实现mybatis的 interceptor 拦截器,对原本的SQL语句进行重新拼装,完成分页。

浙公网安备 33010602011771号