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.pagehelpergroupId>
    <artifactId>pagehelperartifactId>
    <version>5.1.4version>
dependency>
<dependency>
    <groupId>com.github.jsqlparsergroupId>
    <artifactId>jsqlparserartifactId>
    <version>3.1version>
dependency>

参考

MybatisPlus官方指南

SpringBoot集成mybatis分页插件问题

为啥MyBatis-Plus 分页插件不生效?

MyBatis-Plus 分页插件失效分析

使用mybatis分页插件报错

你可能感兴趣的:(MybatisPlus,分页插件)