首页 > 其他分享 >使用 MyBatis 相关依赖包(20230725)

使用 MyBatis 相关依赖包(20230725)

时间:2023-07-25 10:12:34浏览次数:49  
标签:依赖 spring boot mybatis plus MyBatis com starter 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发布于博客园

 

标签:依赖,spring,boot,mybatis,plus,MyBatis,com,starter,20230725
From: https://www.cnblogs.com/luo630/p/17578871.html

相关文章

  • 20230725
    复赛动态规划——01背包例题:采药题目描述时间限制:1s空间限制:256M题目描述:松下问童子,言师采药去,云深不知处,只在此山中辰辰是个天资聪颖的孩子,他的梦想是成为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到一......
  • Mybatis
    基础知识什么是Mybatis它是一款基于java的半自动ORM持久层框架,具有较高的SQL灵活性,支持高级映射(一对一,一对多),动态SQL,延迟加载和缓存等特性,但它的数据库无关性较低。什么是ORM?ObjectRelationMapping,对象关系映射。对象指的是Java对象,关系指的是数据库中的关系模型,对象关系......
  • 类之间的循环依赖,你头疼了吗?
    类之间的循环依赖指的的A依赖B,B也依赖A,这就出现循环依赖。如果是spring容器中的两个bean出现循环依赖,则在容器启动时,可能会报错,导致无法启动。 如果解决循环依赖?首先要理清各类的职责,尤其是分层职责————相同层级不要相互调用,调用下级API。下面是职责不清晰导致的循环依赖......
  • Mybatis 多对一处理
    多对一处理:多个学生,对应一个老师对于学生而言,关联...多个学生关联一个老师(多对一)对于老师而言,集合,一个老师,有很多学生(一对多) 测试环境搭建1:导入lombok(不用lombok忽略)2:新建实体类Teacher,Student3:建立Mapper接口4:建立Mapper.xml文件5:在核心配置文件中绑定注册我们的......
  • 周一 mybatis
    数据库连不上改半天,映射文件名写错了找半天,对难受的从MySQLConnector/J8.0.20版本开始,驱动包名发生了变化,需要使用 "com.mysql.cj.jdbc.Driver" 因为.cj错了找半天还好最后解决了 ......
  • Mybatis实战教程
    欢迎大家前来白嫖PDF。下图回复:666本教程致力于最实用mybatis教程,个别图片粘贴有丢失,还有来领取原版。文章目录前言1,什么是Mybatis之JDBC攻城狮1,1,使用idea构建maven工程1,2,引入mysql依赖包1,3,准备数据1,4,jdbc代码回顾1,5,jdbc缺点分析4,MyBatis介绍3,MyBatis整体架构4,快速入门(quicksta......
  • .net 6 依赖注入
    实现".NET6依赖注入"的步骤对于一个刚入行的小白来说,理解和实现".NET6依赖注入"可能会有些困惑。下面是一份简单的步骤列表,帮助你快速了解并实现这一功能。步骤概览步骤描述步骤1添加NuGet包步骤2实现依赖注入容器步骤3注册服务步骤4使用依......
  • Springboot 整合mybatis 加导出excel
    快速写一个springboot,mybatis的demo,最后用excel导出。第一步,创建一个新maven命名就按自己的来啦第二步,配置pom文件<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version&g......
  • Mybatis入参与返回值类型
    mapper接口入参入参设置方式:1.单独的参数与对象均直接按默认属性名匹配(得有对应get、set方法)2.@param注解,注解名称代表参数对象3.packagecom.Dao;importcom.person.People;importorg.apache.ibatis.annotations.Param;importjava.util.Map;//不同参数配置pu......
  • Mybatis的嵌套查询-column多条件
    Mybatis的嵌套查询一、结构创建三个表userroleuser_role简单展示一下嵌套查询的例子,其实就是Collection放到ResultMap,下一层把上一层的查询结果作为条件传入。--master.`user`definitionCREATETABLE`user`(`id`bigintNOTNULLAUTO_INCREMENT,`age`intDEF......