MyBatis的工作原理

 

1 读取 MyBatis 配置文件: mybatis-config.xml MyBatis 的全局配置文件,配置了 MyBatis 的运行环境等信息,例如数据库连接信息。
2 加载映射文件。映射文件即 SQL 映射文件,该文件中配置了操作数据库的 SQL 语句,需要在
MyBatis 配置文件 mybatis-config.xml 中加载。 mybatis-config.xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。
3 构造会话工厂:通过 MyBatis 的环境等配置信息构建会话工厂 SqlSessionFactory
4 创建会话对象:由会话工厂创建 SqlSession 对象,该对象中包含了执行 SQL 语句的所有方法。
5 Executor 执行器: MyBatis 底层定义了一个 Executor 接口来操作数据库,它将根据 SqlSession 传递的参数动态地生成需要执行的 SQL 语句,同时负责查询缓存的维护
6 MappedStatement 对象:在 Executor 接口的执行方法中有一个 MappedStatement 类型的参数,
该参数是对映射信息的封装,用于存储要映射的 SQL 语句的 id 、参数等信息。
7 输入参数映射:输入参数类型可以是 Map List 等集合类型,也可以是基本数据类型和 POJO 类型。输入参数映射过程类似于 JDBC preparedStatement 对象设置参数的过程。
8 输出结果映射:输出结果类型可以是 Map List 等集合类型,也可以是基本数据类型和 POJO 类型。输出结果映射过程类似于 JDBC 对结果集的解析过程。
MyBatis 的功能架构是怎样的

 

我们把 Mybatis 的功能架构分为三层:
API 接口层:提供给外部使用的接口 API ,开发人员通过这些本地 API 来操纵数据库。接口层一接收
到调用请求就会调用数据处理层来完成具体的数据处理。
数据处理层:负责具体的 SQL 查找、 SQL 解析、 SQL 执行和执行结果映射处理等。它主要的目的是
根据调用的请求完成一次数据库操作。
基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是
共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
MyBatis 的框架架构设计是怎么样的
这张图从上往下看。 MyBatis 的初始化,会从 mybatis-config.xml 配置文件,解析构造成 Configuration这个类,就是图中的红框。
1 、加载配置: 配置来源于两个地方,一处是配置文件,一处是 Java 代码的注解,将 SQL 的配置信息加载成为一个个MappedStatement 对象(包括了传入参数映射配置、执行的 SQL 语句、结果映射配置),存储在内存中。
2 SQL 解析: API 接口层接收到调用请求时,会接收到传入 SQL ID 和传入对象(可以是 Map 、JavaBean或者基本数据类型), Mybatis 会根据 SQL ID 找到对应的 MappedStatement ,然后根据传入 参数对象对MappedStatement 进行解析,解析后可以得到最终要执行的 SQL 语句和参数。
3 SQL 执行: 将最终得到的 SQL 和参数拿到数据库进行执行,得到操作数据库的结果。
4 、结果映射: 将操作数据库的结果按照映射的配置进行转换,可以转换成 HashMap JavaBean 或者基本数据类型,并将最终结果返回。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值