前言

若依前后端分离版默认携带的是 pagehelper-spring-boot-starter 分页插件,分页插件依赖里包含了 Mybatis。若依对分页部分做了一个封装,可以在内部获取请求中携带的页码和每页记录数,再调用 PageHelper.startPage(pageNum, pageSize, orderBy).setReasonable(reasonable);

本来没打算搞mybatisplus,主要是怕产生依赖冲突,之前测试 mybatis 的时候尝试过一次,可惜失败了。现在发现,仅仅是一个简单的查询所有记录,都需要从服务到 mapper,再到 sql,有点麻烦。所以想要趁着项目时间还够,就先试试。

实现过程

主要的过程还是参考若依官方写的 集成mybatisplus实现mybatis增强

按照文档里的步骤依次完成就好。主要是中间因为不知道是依赖冲突,还是什么原因,导致出现 xx.class 字节文件冒出来,然后手欠莫名其妙的加了个断点,并且那个断点还不是正常代码里的红色的圆,而是一个红色的闪电 ⚡️ 标记,导致后面没有发现出现误判,以为是依赖冲突。然后就不断的尝试消除 mybatis 依赖冲突,然后再重启。结果因为断点的原因,每次启动都没有报错,但会自动卡到那个 xx.class 字节文件里。

最后花了大半天才发现,原来是个断点。去掉断点之后,重启没有任何问题。此时,pagehelper(v2.1.0) 和 mybatis-plus(v3.5.7) 依赖如下:

<!-- mybatis-plus 增强CRUD -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>${mybatis.plus.boot.version}</version>
</dependency>

<!-- pagehelper 分页插件 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>${pagehelper.boot.version}</version>
</dependency>

都取了当前两个依赖的最新版本。因为确认问题并不是依赖冲突。其他项目也有 tk-mybatis 和 pagehelper 或者干脆就是 mybatis-plus 和 pagehelper 的,都没有出现问题。

中间查询列表的时候突然报错,说是找不到 selectBody 方法,网上又兜了一圈,最终还是尝试通过解依赖冲突试试能否解决。

IDE Maven 工具查看依赖冲突

目前的话只需要在 pagehelper 的依赖中把 mybatis 依赖去除即可。

<!-- mybatis-plus 增强CRUD -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>${mybatis.plus.boot.version}</version>
</dependency>

<!-- pagehelper 分页插件 -->
<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>${pagehelper.boot.version}</version>
    <exclusions>
        <exclusion>
            <groupId>com.github.jsqlparser</groupId>
            <artifactId>jsqlparser</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
        </exclusion>
    </exclusions>
</dependency>

去除之后点击 maven 更新,再运行就没有了。

但现在我尝试复现当时的报错,去除 exclusions 之后,项目依然没有问题。就很搞。