MyBatis 官方子项目详细说明及表格总结
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 项目。