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语句进行重新拼装,完成分页。

posted @ 2020-08-07 17:59  跃动的电子  阅读(1328)  评论(0)    收藏  举报