使用 MyBatis 相关依赖包(20230725)

开发 Spring Boot 应用时使用 MyBatis 的相关依赖包……

 

说明:本文首次发布于 2023-7-25 10点(北京时间),其中的“最新”是这个时间点最新。

 

0、序章

梳理开发 Spring Boot 项目时,使用各种 MyBatis 相关依赖包的版本 及其 关系。

 

1、Spring Boot 2.7.13 默认 MyBatis Framework

前几日打开下面的网站,选择 Spring boot 的版本是 2.7.13:

https://start.spring.io/

此时,选择 MyBatis Framework 依赖 得到的是 mybatis-spring-boot-starter 2.3.1,两个依赖,如下:

--

<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>2.3.1</version>
</dependency>

<!-- 测试用 -->
<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter-test</artifactId>
	<version>2.3.1</version>
	<scope>test</scope>
</dependency>

检查 mybatis-spring-boot-starter 的依赖,其使用的 mybatis 是 3.5.13、mybatis-spring 是 2.1.1:

--

MyBatis: PageHelper(分页插件)

pagehelper-spring-boot-starter

https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter

--

最新版本是 1.4.7,依赖方式:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.4.7</version>
</dependency>

其依赖的 mybatis-spring-boot-starter 也是 2.3.1。

 

mybatis-spring-boot-starter 最新版本

https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter

最新版本:3.0.2 发布于 May 20, 2023

3+ 的版本,应该是 为了配合 Spring Boot 3+ 的版本使用的。

 

2、Spring Boot 2.7.13 中使用 mybatis-plus

mybatis-plus 官网:

https://baomidou.com/

依赖包名 mybatis-plus-boot-starter:

最新版本 3.5.3.1,引入依赖:

<!-- https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>

不过,mvnrepository.com 显示,该版本存在漏洞:

检查 mybatis-plus-boot-starter 的依赖,其使用的 mybatis 是 3.5.10(还有 3.5.9)、mybatis-spring 是 2.0.7(和 上文的 mybatis-spring-boot-starter 2.3.1 的依赖不同!):

--

 

避免依赖冲突

在 mybatis-plus 官网提到,引入 mybatis-plus 后,就不要直接引入 mybatis包了。

从上面的 调查也可以看到,最新的 mybatis-plus-boot-starter 和 mybatis-spring-boot-starter 依赖的底层 包的版本可能不一致。

官文:

https://baomidou.com/pages/bab2db/#spring

 

mybatis-plus 分页查询

不需要 额外引入 pagehelper 了,参考官文,做下面的配置即可使用:

https://baomidou.com/pages/2976a3/#mybatisplusinterceptor

自动分页: PaginationInnerInterceptor

下面是 官文配置的 Java 代码:

MybatisPlusConfig.java 分页配置
 // https://baomidou.com/pages/2976a3/#spring-boot
@Configuration
@MapperScan("scan.your.mapper.package")
public class MybatisPlusConfig {

    /**
     * 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题(该属性会在旧插件移除后一同移除)
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.H2)); // 注意选择数据库;还有更多属性设置!
        return interceptor;
    }

    @Bean
    public ConfigurationCustomizer configurationCustomizer() {
        return configuration -> configuration.setUseDeprecatedExecutor(false);
    }
}

使用示例,请参考 mybatis-plus 官文。

 

说明,

1、mybatis-plus 很强大;

2、mybatis-plus 还有更多 lusinterceptor ,待解锁;

 

3、Spring Boot 3.1.2 默认 MyBatis Framework

进入 https://start.spring.io/ ,选择 3.1.2,Java 选择 17:

选择 MyBatis Framework ,下载,检查 其中的 mybatis 版本:果然使用了最新的 mybatis-spring-boot-starter 包

<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>3.0.2</version>
</dependency>

<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter-test</artifactId>
	<version>3.0.2</version>
	<scope>test</scope>
</dependency>

从 https://mvnrepository.com/ 可以看到它的 mybatis 版本依赖:mybatis 版本还是 3.5.13,而 mybatis-spring 版本则为 3.0.2 了。

注,尚未安装 JDK 17+,无法打开项目,本文的探索到此为止。

 

Spring Boot 3.1.2 下使用 mybatis-plus

从 https://mvnrepository.com/ 可以看到,适配 Spring Boot 3 的 mybatis-plus 尚未发布,最新发布日期为 Dec 30, 2022。

当前,mybatis-plus-boot-starter 的最新版本就是上面介绍的 mybatis-plus-boot-starter。

--

 

这样来看,Spring Boot 3 中是否可以使用 mybatis-plus 还需验证(实践),TODO 

 

4、mybatis 最新版本

https://mvnrepository.com/artifact/org.mybatis/mybatis

3.5.13 @ Mar 11, 2023

--

 

5、pagehelper 最新版本

 

pagehelper

https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper

5.3.3 @  Jun 03, 2023

--

依赖:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper</artifactId>
    <version>5.3.3</version>
</dependency>

注意,该版本存在漏洞

其底层依赖包:

 

pagehelper-spring-boot-starter 最新版本

https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-starter

1.4.7 @ Jun 03, 2023

--

依赖:

<dependency>
    <groupId>com.github.pagehelper</groupId>
    <artifactId>pagehelper-spring-boot-starter</artifactId>
    <version>1.4.7</version>
</dependency>

其底层依赖包:

看起来也对 Spring Boot 3+ 的应该支持的不太好啊。

--

 

 

---END---

 

本文链接:

https://www.cnblogs.com/luo630/p/17578871.html

 

参考文档

1、https://start.spring.io/

2、https://baomidou.com/

mybatis-plus 官网

3、https://mybatis.org/mybatis-3/zh/index.html

mybatis 3 官网

注,没有旧版本的官网了。

4、

 

ben发布于博客园

ben发布于博客园

 

posted @ 2023-07-25 10:04  快乐的欧阳天美1114  阅读(426)  评论(0编辑  收藏  举报