Mybatis-Plus分页插件
Posted Shinka_YXS
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis-Plus分页插件相关的知识,希望对你有一定的参考价值。
MybatisPlusConfig类
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* 此类copy自官方文档中介绍的SpringBoot方式 https://mp.baomidou.com/guide/page.html
*/
@Configuration
public class MybatisPlusConfig {
// 旧版
@Bean
public PaginationInterceptor paginationInterceptor() {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor();
// 设置请求的页面大于最大页后操作, true调回到首页,false 继续请求 默认false
// paginationInterceptor.setOverflow(false);
// 设置最大单页限制数量,默认 500 条,-1 不受限制
// paginationInterceptor.setLimit(500);
// 开启 count 的 join 优化,只针对部分 left join
paginationInterceptor.setCountSqlParser(new JsqlParserCountOptimize(true));
return paginationInterceptor;
}
// 最新版
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.mysql));
return interceptor;
}
}
MybatisSqlSessionFactoryBean设置插件
// 设置 MyBatis-Plus 分页插件
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
Interceptor[] plugins = {new MybatisPlusConfig().mybatisPlusInterceptor()};
bean.setPlugins(plugins);
报错排查
若在xml传入page使用分页查询时正常,而在使用baseMapper.selectPage(page, wrapper)
查询时报错:
net.sf.jsqlparser.statement.select.PlainSelect.getGroupBy()Lnet/sf/jsqlparse
原因:在使用mybatis分页插件时,需要依赖jsqlparser
。这个错误表示分页插件版本与依赖版本不匹配。
解决:本次主要是jsqlparser版本较低(1.0),改为3.1版本之后可正常使用
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.1.4</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>3.1</version>
</dependency>
参考
以上是关于Mybatis-Plus分页插件的主要内容,如果未能解决你的问题,请参考以下文章