![v2-a232bd2a34ed7d93d335dad29392f0e2_1440w.jpg?source=172ae18b](http://img-01.proxy.5ce.com/view/image?&type=2&guid=58dad909-e32f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-a232bd2a34ed7d93d335dad29392f0e2_1440w.jpg?source=172ae18b)
1. 注解开发
a)注解是用于描述代码的代码. 例如: @Test(用于描述方法
进行 junit测试), @Override(用于描述方法的重写),
@Param(用于描述属性的名称)
b)注解的使用风格: @xxx(属性), 使用前必须先导包
c)使用注解一般用于简化配置文件. 但是, 注解有时候也不
是很友好(有时候反而更麻烦), 例如动态 SQL.
d)关于注解的属性
Ø 属性的设定方式是: 属性名=属性值
e)关于属性值的类型
Ø 基本类型和 String, 可以直接使用双引号的形式
Ø 数组类型, name={值 1, 值 2, ...}; 如果数组元素只有
一个, 可以省略大括号
Ø 对象类型, name=@对象名(属性)
Ø 如果属性是该注解的默认属性, 而且该注解只配置这
一个属性, 可以将属性名省略
f)注解和配置文件可以配合使用
1. MyBatis 中常用的注解
1.1 CRUD 注解
@Select: 类似于<select>
@Insert: 类似于<insert>
@Update: 类似于<update>
@Delete: 类似于<delete>
package
1. MyBatis 中常用的注解
1.2 其他注解
@Results: 类似于<resultMap>
@Result: 类似于<resultMap>的子标签
@One: 类似于<association>
@Many: 类似于<collection>
public
1. MyBatis 运行原理
1.1 运行过程中涉及到的类或接口
1.1.1 Resources(C)
用于加载 MyBatis核心配置文件
1.1.2 XMLConfigBuilder(C)
用于解析 xml文件(核心配置文件)
1.1.3 Configuration(C)
用于存放 xml文件解析后的结果
1.1.4 DefaultSqlSessionFactory(C)
是 SqlSessionFactory(I)的 实 现 类 , 创 建 时 需 要 使 用
Configuration对象
1.1.5 SqlSession(I)
是 MyBatis操作的核心
1.1.6 DefaultSqlSession(C)
是 SqlSession接口的实现类
1.1.7 TransactionFactory(I)
用于生产 Transaction对象
1.1.8 Transaction(I)
用于表示操作数据库的事务对象
1.1.9 Executor(I)
是 MyBatis的核心执行器, 类似于 jdbc中的 Statement, 常
用的实现类是 SimpleExecutor
1.2 文字描述
当 MyBatis运行开始时, 先要通过 Resources加载核心
配置文件, 之后使用 XMLConfigBuilder对配置文件进行解
析, 将解析结果封装为 Configuration对象, 接着, 使用
Configuration对象构建一个 DefaultSqlSessionFactory对
象, 至此, SqlSession工厂构建完成.
接下来, 通过工厂对象调用 openSession方法创建
SqlSession对 象 . 在 这 个 过 程 中 , 需 要 通 过
TransactionFactory生成 Transaction对象, 并且, 还需要
创建核心执行器 Executor对象, 之后, 通过这些对象来创
建 DefaultSqlSession对象, 至此, SqlSession对象创建成
功.
之后, 通过 SqlSession对象执行相应的操作, 如果执
行成功, 调用 commit方法提交事务; 如果失败, 调用
rollback方 法 事 务 回 滚 . 最 后 , 调 用 close方 法 关 闭
session资源. 以上, 就是 MyBatis的运行原理.