使用 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發佈於博客園

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章