# mybatis-3
**Repository Path**: arthurliuyuhao/mybatis-3
## Basic Information
- **Project Name**: mybatis-3
- **Description**: mybatis-3源码学习
https://github.com/mybatis/mybatis-3
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 2
- **Created**: 2024-12-25
- **Last Updated**: 2024-12-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# MyBatis SQL Mapper Framework for Java
[](https://github.com/mybatis/mybatis-3/actions?query=workflow%3A%22Java+CI%22)
[](https://coveralls.io/github/mybatis/mybatis-3?branch=master)
[](https://maven-badges.herokuapp.com/maven-central/org.mybatis/mybatis)
[](https://oss.sonatype.org/content/repositories/snapshots/org/mybatis/mybatis/)
[](https://www.apache.org/licenses/LICENSE-2.0.html)
[](https://stackoverflow.com/questions/tagged/mybatis)
[](https://www.openhub.net/p/mybatis)

MyBatis SQL Mapper Framework 使得在面向对象的应用程序中使用关系数据库变得更加容易。MyBatis 使用 XML 描述或注解将对象与存储过程或 SQL 语句耦合在一起。相对于对象关系映射工具,MyBatis 数据映射器的最大优势在于其简单性。
## 相关学习资料:
1. [Mybatis3.0源码解读](https://www.bilibili.com/video/BV1xM411H7Ky?p=3&vd_source=98974018945b0c2a5cc507d5a74a8b5a)
2. [精尽 MyBatis 源码分析](http://svip.iocoder.cn/categories/MyBatis)
## 要点
* [查看文档](https://mybatis.org/mybatis-3)
* [下载最新版本](https://github.com/mybatis/mybatis-3/releases)
* [下载快照版](https://oss.sonatype.org/content/repositories/snapshots/org/mybatis/mybatis/)
## 贡献
Mybatis-core 现在正在进行自动格式化。考虑到 MyBatis 的某些代码逻辑的性质,对于诸如 SQL 语句之类的片段,手动强制格式化结构更为合适。为此,在代码周围添加以下块。
- ```// @formatter:off``` 以开始未格式化代码块
- ```// @formatter:on``` 以结束未格式化代码块
如果注释部分需要与 javadocs 等具有相同行为,请注意整个块必须围绕整个注释,因为直接使用不能正确地指示格式化程序将其视为一个注释块。
## 测试
Mybatis-3 代码在使用 jdk 和平台的情况下运行更具表现力的测试。
默认情况下,我们设置 ```TestcontainersTests```,它将排除带有 @Tag('TestcontainersTests') 的测试子集。此外,如果使用的是 jdk 16 之前的版本,我们还将排除记录类的执行,从而进一步减少测试。
使用 jdk 16+ 时,我们将规则调整为 ```TestcontainersTests,RequireIllegalAccess```。
当在 ci 平台上运行时,我们会根据需要进行进一步的调整。详细信息请参见[这里](.github/workflows/ci.yaml)。
截至 2023 年 2 月 20 日,使用组合系统 + jdk 将导致运行给定数量的测试。随着时间的推移,这将随着测试的增加或删除而发生变化。
不进行调整设置(即按原样使用,平台无关)
- 任何操作系统 + jdk 11 = 1730 个测试
- 任何操作系统 + jdk 17 = 1710 个测试
- 任何操作系统 + jdk 19 = 1710 个测试
- 任何操作系统 + jdk 20 = 1710 个测试
- 任何操作系统 + jdk 21 = 1710 个测试
我们针对平台确实关系到的 GH actions 进行的调整
- Windows + jdk 11 = 1730 个测试
- Windows + jdk 17 = 1710 个测试
- Windows + jdk 19 = 1710 个测试
- Windows + jdk 20 = 1710 个测试
- Windows + jdk 21 = 1710 个测试
- Linux + jdk 11 = 1765 个测试
- Linux + jdk 17 = 1745 个测试
- Linux + jdk 19 = 1745 个测试
- Linux + jdk 20 = 1745 个测试
- Linux + jdk 21 = 1745 个测试
- Mac + jdk 11 = 1730 个测试
- Mac + jdk 17 = 1710 个测试
- Mac + jdk 19 = 1710 个测试
- Mac + jdk 20 = 1710 个测试
- Mac + jdk 21 = 1710 个测试