MyBatis 官方子项目详细说明及表格总结

1. 核心子项目说明
1.1 mybatis-3
- GitHub 链接:https://github.com/mybatis/mybatis-3
 - 功能:
MyBatis 核心框架的源码,提供 SQL 映射、动态 SQL、缓存、事务管理等核心功能。 - 主要功能: 
- 支持 XML/注解配置。
 - 提供 
SqlSession、Mapper等核心接口。 - 支持一级缓存(本地会话缓存)和二级缓存(命名空间级缓存)。
 
 - 适用场景:
所有 MyBatis 项目的基石,所有功能均基于此实现。 
1.2 mybatis-generator
- GitHub 链接:https://github.com/mybatis/generator
 - 功能:
代码生成器,根据数据库表自动生成Entity、Mapper、XML等基础代码。 - 主要功能: 
- 支持多种数据库(MySQL、Oracle 等)。
 - 可配置生成策略(如表名到类名的转换规则)。
 - 生成的代码可作为项目基础,减少重复劳动。
 
 - 适用场景:
快速生成基础 CRUD 代码,提升开发效率。 
1.3 mybatis-ehcache
- GitHub 链接:https://github.com/mybatis/mybatis-ehcache
 - 功能:
Ehcache 集成模块,将 Ehcache 作为 MyBatis 的二级缓存实现。 - 主要功能: 
- 提供 
EhcacheCache类实现 MyBatis 缓存接口。 - 支持 Ehcache 的缓存策略(如过期时间、容量控制)。
 
 - 提供 
 - 适用场景:
需要使用 Ehcache 作为分布式或本地缓存的场景。 
1.4 mybatis-redis
- GitHub 链接:https://github.com/mybatis/mybatis-redis
 - 功能:
Redis 集成模块,将 Redis 作为 MyBatis 的二级缓存实现。 - 主要功能: 
- 提供 
RedisCache类实现 MyBatis 缓存接口。 - 支持 Redis 的分布式缓存特性。
 
 - 提供 
 - 适用场景:
需要分布式缓存或跨节点缓存共享的场景。 
1.5 mybatis-spring
- GitHub 链接:https://github.com/mybatis/spring
 - 功能:
Spring 集成工具,简化 MyBatis 与 Spring 的整合。 - 主要功能: 
- 提供 
SqlSessionFactoryBean、MapperScannerConfigurer等 Spring 集成类。 - 支持声明式事务管理。
 
 - 提供 
 - 适用场景:
在 Spring 项目中使用 MyBatis 时简化配置。 
1.6 mybatis-spring-boot
- GitHub 链接:https://github.com/mybatis/spring-boot-starter
 - 功能:
Spring Boot 集成模块,提供自动配置和简化配置的 starter。 - 主要功能: 
- 自动配置 
SqlSessionFactory和Mapper扫描。 - 支持通过 
application.properties简化 MyBatis 配置。 
 - 自动配置 
 - 适用场景:
在 Spring Boot 项目中快速集成 MyBatis。 
其他相关子项目
- mybatis-issues:MyBatis 问题跟踪仓库。
 - mybatis-website:MyBatis 官网源码。
 - mybatis-oscached:旧版的 OSCache 集成模块(已较少使用)。
 - mybatis-dynamic-sql:提供动态 SQL 构建工具,减少 XML 配置。
 
2. 子项目对比表格
| 子项目名称 | GitHub 链接 | 核心功能 | 适用场景 | 
|---|---|---|---|
| mybatis-3 | mybatis-3 | MyBatis 核心框架,提供 SQL 映射、缓存、事务等基础功能。 | 所有 MyBatis 项目的基础,必须依赖。 | 
| mybatis-generator | mybatis-generator | 自动生成 Entity、Mapper、XML 等基础代码。 | 快速生成代码,减少重复劳动。 | 
| mybatis-ehcache | mybatis-ehcache | 将 Ehcache 作为 MyBatis 的二级缓存实现。 | 需要使用 Ehcache 实现本地或分布式缓存的场景。 | 
| mybatis-redis | mybatis-redis | 将 Redis 作为 MyBatis 的二级缓存实现。 | 需要分布式缓存或跨节点缓存共享的场景。 | 
| mybatis-spring | mybatis-spring | 简化 MyBatis 与 Spring 的整合(如 SqlSessionFactory、Mapper 扫描)。 | 在 Spring 项目中使用 MyBatis 时减少配置。 | 
| mybatis-spring-boot | mybatis-spring-boot | 提供 Spring Boot 的自动配置和 starter,简化 MyBatis 集成。 | 在 Spring Boot 项目中快速集成 MyBatis。 | 
| mybatis-dynamic-sql | mybatis-dynamic-sql | 提供动态 SQL 构建工具,减少 XML 配置。 | 需要动态 SQL 构建且希望减少 XML 依赖的场景。 | 
3. 子项目依赖关系
| 子项目 | 依赖的核心模块 | 依赖的第三方库 | 
|---|---|---|
| mybatis-3 | 无 | 无 | 
| mybatis-generator | mybatis-3 | Velocity(模板引擎)、Freemarker | 
| mybatis-ehcache | mybatis-3 | Ehcache | 
| mybatis-redis | mybatis-3 | Redis Client(如 Jedis/Lettuce) | 
| mybatis-spring | mybatis-3, Spring Framework | Spring Core、Spring JDBC | 
| mybatis-spring-boot | mybatis-spring, Spring Boot | Spring Boot Starter | 
4. 使用示例
4.1 mybatis-spring-boot-starter 配置示例
# application.yml
mybatis:mapper-locations: classpath:mapper/*.xmltype-aliases-package: com.example.entity
 
4.2 mybatis-generator 代码生成示例
<!-- generatorConfig.xml -->
<generatorConfiguration><context id="DB2Target" targetRuntime="MyBatis3"><jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/mydb"userId="root"password="root"/><javaModelGenerator targetPackage="com.example.entity" /><sqlMapGenerator targetPackage="mapper" /><javaClientGenerator type="XMLMAPPER" targetPackage="com.example.mapper" /><table tableName="user" domainObjectName="User" /></context>
</generatorConfiguration>
 
5. 关键选择建议
- 核心开发:必须依赖 mybatis-3。
 - 代码生成:使用 mybatis-generator 生成基础代码。
 - 缓存需求: 
- 本地缓存:mybatis-ehcache。
 - 分布式缓存:mybatis-redis。
 
 - Spring/Spring Boot 集成: 
- Spring:mybatis-spring。
 - Spring Boot:mybatis-spring-boot-starter。
 
 
6. 官方仓库地址修正
用户提供的部分链接存在拼写错误,以下是修正后的正确链接:
- MyBatis 官方组织:https://github.com/mybatis
 - mybatis-ehcache:https://github.com/mybatis/mybatis-ehcache
 - mybatis-redis:https://github.com/mybatis/mybatis-redis
 
7. 学习路径建议
- 基础学习:从 mybatis-3 开始,掌握核心 API 和 XML 配置。
 - 提升效率:使用 mybatis-generator 生成代码,减少重复劳动。
 - 缓存优化:根据需求选择 mybatis-ehcache 或 mybatis-redis。
 - 框架集成: 
- Spring:学习 mybatis-spring。
 - Spring Boot:使用 mybatis-spring-boot-starter。
 
 
通过组合这些子项目,可以快速构建高效、可维护的 MyBatis 项目。