本项目使用pagehelper过程中发现分页不生效
相关配置如下
springboot的分页插件 <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>${spring-boot-pagehelper.version}</version> </dependency>
分页插件注入,我这里代码都是手动注入
@Bean
public PageHelper pageHelper() {
PageHelper pageHelper = new PageHelper();
Properties p = new Properties();
p.setProperty("helperDialect", "Mysql");
p.setProperty("supportMethodsArguments", "true");
p.setProperty("reasonable", "false");
p.setProperty("params", "count=countSql");
pageHelper.setProperties(p);
return pageHelper;
}
代码如下:
生成SQL中并没有分页代码
debug中发现注入mybatis的插件拦截器数组中并没有分页插件 如图:
解决方案
在注入分页插件的同时注入mybatis 插件拦截器数组
注意
如果手动注入拦截器,那所有的mybatis插件拦截器都要在这里注入。
@Bean
public PageHelper pageHelper() {
PageHelper pageHelper = new PageHelper();
Properties p = new Properties();
p.setProperty("helperDialect", "Mysql");
p.setProperty("supportMethodsArguments", "true");
p.setProperty("reasonable", "false");
p.setProperty("params", "count=countSql");
pageHelper.setProperties(p);
return pageHelper;
}
/**
* 给mybatis注入分页插件
* 防止mybatis分页插件不生效
**/
@Bean
public Interceptor[] plugins() {
return new Interceptor[]{new PageInterceptor()};
}
运行成功结果
成功获取到了 插件数组
分页插件生效