SpringBoot+MyBatis使用pagehelper分页插件及其注意事项(含解决分页不生效问题)

1 前言

近期在做项目的时候,遇到了一个问题:在使用MyBatis的分页插件(pagehelper)时,发现其分页不生效,找了许多方法才得以解决,故写下这篇文章记录一下,帮助跟我遇到同样问题的同学~

2 引入 PageHelper 注意要点

2.1 检查引入的包是否正确

建议使用 SpringBoot 框架的同学,都引入 pagehelper 与 SpringBoot 项目的整合包,避免不必要冲突影响插件的使用。


    com.github.pagehelper
    pagehelper-spring-boot-starter
    1.2.10

2.2 使用 application.yml 配置

pagehelper:
  # 设置方言,此处指定 MySQL 数据库
  helper-dialect: mysql
  # 是否启动合理化,默认是 false。
  # 启用合理化时,如果pageNum<1会查询第一页,如果pageNum>pages(最大页数)会查询最后一页。
  # 禁用合理化时,如果pageNum<1或pageNum>pages会返回空数据
  reasonable: true
  # 是否支持接口参数来传递分页参数,默认false
  support-methods-arguments: true
  # 为了支持startPage(Object params)方法,增加了该参数来配置参数映射,用于从对象中根据属性名取值
  params: count=countSql
  # 默认值为 false,当该参数设置为 true 时,如果 pageSize=0 或者 RowBounds.limit = 0 就会查询出全部的结果(相当于没有执行分页查询,但是返回结果仍然是 Page 类型)
  page-size-zero: true

3.如果还是实现不了分页的效果,那么可以试试分页的拦截器,添加好了就可以了

import com.github.pagehelper.PageInterceptor;
import org.apache.ibatis.plugin.Interceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * 分页拦截器
 */
@Configuration
public class PageHelperConfigure {

    @Bean
    public Interceptor[] plugins() {
        return new Interceptor[]{new PageInterceptor()};
    }

}

4.最后就实现了

SpringBoot+MyBatis使用pagehelper分页插件及其注意事项(含解决分页不生效问题)_第1张图片

你可能感兴趣的:(每日解决问题,mybatis,spring,boot,java)