MyBatis Spring集成完全指南(史上最全)

 更新时间:2025年10月11日 14:37:09   作者:lang20150928  
MyBatis-Spring是一个库,用于无缝集成MyBatis和Spring框架,实现事务管理、自动创建Mapper和SqlSession、异常转换等功能,本文给大家介绍MyBatis Spring集成完全指南,感兴趣的朋友跟随小编一起看看吧

以下这段内容是 MyBatis-Spring 官方文档的介绍部分,包括了:

  • 什么是 MyBatis-Spring
  • 为什么需要它(动机)
  • 使用它的前提条件和版本要求

下面我们逐段解释,帮助你更好地“理解”这些内容,特别是最后那个版本兼容性表格的含义。

一、什么是 MyBatis-Spring?

MyBatis-Spring integrates MyBatis seamlessly with Spring.

这句话的意思是:

MyBatis-Spring 是一个桥梁库(library),用于将 MyBatis 框架和 Spring 框架无缝集成在一起。

它能实现以下功能:

功能说明
✅ 参与 Spring 事务管理在 Spring 的 @Transactional 注解下,MyBatis 的数据库操作可以自动加入事务。
✅ 自动创建 Mapper 和 SqlSession不用手动打开 SqlSession 或 getMapper(),Spring 会帮你创建并管理。
✅ 注入到 Spring Bean 中MyBatis 的 Mapper 接口可以直接用 @Autowired 注入到 Service 等组件中。
✅ 异常转换将 MyBatis 抛出的异常转换为 Spring 的 DataAccessException 层次结构,便于统一处理。
✅ 解耦你的业务代码不需要依赖 MyBatis 或 Spring 的 API,只需要面向接口编程。

📌 简单说:有了 MyBatis-Spring,你就可以像使用 JPA 或 Spring JDBC 一样,方便地在 Spring 项目中使用 MyBatis。

二、动机(Motivation)

这段讲的是“为什么会有 MyBatis-Spring 这个项目?

历史背景如下:

  • Spring 2.x 只支持旧版的 iBATIS(MyBatis 的前身)。
  • Spring 3 开发时,MyBatis 3 还没正式发布,所以 Spring 团队没法把对 MyBatis 3 的支持加进去。
  • 结果:官方没有提供对 MyBatis 3 的集成支持。

于是,社区开发者们决定自己搞一个项目来弥补这个空缺 —— MyBatis-Spring 应运而生

🎯 所以这是一个由 MyBatis 社区主导的子项目,目的就是让 MyBatis 能更好地与 Spring 集成。

三、要求(Requirements)

文档提醒你:

在开始之前,你应该已经掌握了 MyBatis 和 Spring 的基础知识。

👉 换句话说:这个文档不是入门教程,它假设你已经会用:

  • MyBatis(写 mapper.xml、定义接口、SqlSession 等)
  • Spring(IoC、AOP、事务管理等)

如果你还不熟悉这两个框架,建议先去学习它们的基础知识。

四、版本兼容性表格详解

这是最关键的表格,决定了你在项目中应该选择哪个版本的 MyBatis-Spring。

MyBatis-SpringMyBatisSpring FrameworkSpring BatchJava
3.03.5+6.0+5.0+Java 17+
2.13.5+5.x4.xJava 8+
2.03.5+5.x4.xJava 8+
1.33.4+3.2.2+2.1+Java 6+

🔍 如何理解这个表格?

这个表格告诉你:不同版本的 MyBatis-Spring 所依赖的其他框架的最低版本要求。

你可以根据自己的项目技术栈来选择合适的 MyBatis-Spring 版本。

✅ 示例 1:你现在用的是 Spring Boot 3(对应 Spring 6)

  • Spring Boot 3 默认使用 Spring Framework 6
  • 需要 Java 17+
  • 所以你应该选择 MyBatis-Spring 3.0 或更高
<!-- Maven 依赖示例 -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>3.0.x</version> <!-- 对应底层 mybatis-spring 3.0 -->
</dependency>

⚠️ 注意:mybatis-spring-boot-starter 内部封装了 mybatis-spring,版本要匹配。

✅ 示例 2:你用的是 Spring Boot 2.7(对应 Spring 5)

  • Spring Boot 2.x 使用的是 Spring 5.x
  • 支持 Java 8+
  • 所以你可以使用 MyBatis-Spring 2.1 或 2.0
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.3.x</version> <!-- 对应 mybatis-spring 2.1.x -->
</dependency>

✅ 示例 3:老系统,Spring 3.2.2 + MyBatis 3.4

  • 这种情况很少见了,但如果是维护老系统:
  • MyBatis-Spring 1.3
  • 最低支持 Java 6

🧭 总结:怎么选择 MyBatis-Spring 版本?

你的环境推荐版本
Spring 6 + Java 17+(如 Spring Boot 3)MyBatis-Spring 3.0+
Spring 5 + Java 8+(如 Spring Boot 2)MyBatis-Spring 2.1 或 2.0
Spring 3.2+ + Java 6+(老旧系统)MyBatis-Spring 1.3

💡 提示:大多数现代项目都应使用 MyBatis-Spring 2.1+ 或 3.0+,除非你在维护非常老的系统。

🔗 补充说明:MyBatis-Spring vs MyBatis-Spring-Boot-Starter

名称作用
mybatis-spring核心集成库,适用于纯 Spring 项目(非 Boot)
mybatis-spring-boot-starterSpring Boot 的启动器,自动配置 MyBatis,更方便

👉 如果你用的是 Spring Boot,优先引入 mybatis-spring-boot-starter,它会自动引入合适版本的 mybatis-spring

✅ 结论

你现在看到的内容是在告诉你:

  • MyBatis-Spring 是什么?
    • → 是连接 MyBatis 和 Spring 的桥梁。
  • 为什么要用它?
    • → 官方不支持 MyBatis 3 与 Spring 的集成,所以社区自己做了。
  • 怎么选版本?
    • → 看你的 Spring 和 Java 版本,对照表格选择对应的 MyBatis-Spring 版本。

如果你想进一步了解如何配置,比如:

  • 如何配置 SqlSessionFactoryBean
  • 如何扫描 Mapper 接口
  • 如何启用事务

可以继续问我,我可以给你完整的配置示例(XML 或 注解方式)。

到此这篇关于MyBatis Spring集成完全指南(史上最全)的文章就介绍到这了,更多相关MyBatis集成Spring内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springmvc前台向后台传值几种方式总结(从简单到复杂)

    springmvc前台向后台传值几种方式总结(从简单到复杂)

    今天小编就为大家分享一篇springmvc前台向后台传值几种方式总结(从简单到复杂),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • Java使用Collections.sort对中文进行排序方式

    Java使用Collections.sort对中文进行排序方式

    这篇文章主要介绍了Java使用Collections.sort对中文进行排序方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • java.math.BigDecimal的用法及加减乘除计算

    java.math.BigDecimal的用法及加减乘除计算

    这篇文章主要介绍了java.math.BigDecimal的用法及加减乘除计算,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Logback在SpringBoot中的详细配置教程

    Logback在SpringBoot中的详细配置教程

    Spring Boot 默认会加载 classpath 下的 logback-spring.xml(推荐)或 logback.xml 作为 Logback 的配置文件,下面我们来看看具体的配置教程吧
    2025-05-05
  • java对象持久化保存的方法详解

    java对象持久化保存的方法详解

    这篇文章主要介绍了java对象持久化保存的方法详解,在java应用开发的过程中,经常遇到需要持久保存java对象的情况,比如:用户信息、博客评论内容等等,本文针对java对象的持久化保存方法进行讨论,简述各个方法的优劣,需要的朋友可以参考下
    2023-07-07
  • idea+spring boot创建项目的搭建全过程

    idea+spring boot创建项目的搭建全过程

    Spring Boot是Spring社区发布的一个开源项目,旨在帮助开发者快速并且更简单的构建项目,这篇文章主要介绍了idea+spring boot创建项目的搭建全过程,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-09-09
  • Spring Boot 2.7.8 集成 Thymeleaf的最佳实践与常见问题讨论

    Spring Boot 2.7.8 集成 Thymeleaf的最佳实践与常见问题

    本文详细介绍了如何将SpringBoot2.7.8与Thymeleaf集成,从项目依赖到配置文件设置,再到控制器和模板的创建,以及如何解决常见的集成问题,通过实际案例,读者可以快速掌握SpringBoot和Thymeleaf的协同工作,并解决开发过程中遇到的问题,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • springboot prototype设置多例不起作用的解决操作

    springboot prototype设置多例不起作用的解决操作

    这篇文章主要介绍了springboot prototype设置多例不起作用的解决操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Java Object定义三个点实现代码

    Java Object定义三个点实现代码

    这篇文章主要介绍了Java Object定义三个点实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • SpringCloud 服务注册中的nacos实现过程

    SpringCloud 服务注册中的nacos实现过程

    这篇文章主要介绍了SpringCloud 服务注册之nacos实现过程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03

最新评论