ORM框架是几乎所有Java应用都会用到的技术,大多数ORM框架都是将Java对象与数据表进行关联,Mybatis则是将Java方法和SQL语句进行了映射(Mapping)。这样不仅简化了ORM操作,同时也支持数据表关联查询、视图查询、存储过程调用等比较复杂的操作。本文就来分析一下MyBatis的工作原理,这也是Java面试中经常考察的内容。
Mybatis实现了方法与SQL语句之间的映射
MyBatis的操作主要有两个阶段:
- 初始化阶段: 完成MyBatis运行环境的准备工作,包括读取XML配置文件和注解中的配置信息,创建配置对象,并完成各个模块的初始化的工作。
- 数据读写阶段: 由数据读写操作触发,按照要求完成具体的CRUD操作。
MyBatis初始化
在初始化阶段,MyBatis 主要进行了以下几项工作。
- 首先根据配置文件的位置,获取它的输入流 InputStream。通常MyBatis的配置文件是XML文件。
- 从配置文件的根节点开始,逐层解析配置文件,也包括相关的映射文件。解析过程中不断将解析结果放入 Configuration对象。
- 以配置好的 Configuration对象为参数,获取一个 SqlSessionFactory对象,也就是 SqlSession 的工厂实例。