欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【MyBatis】MyBatis 的解析和运行原理

程序员文章站 2023-04-02 21:32:36
文章目录MyBatis 编程步骤MyBatis 的工作原理MyBatis 的功能架构MyBatis 的框架架构设计是怎么样的MyBatis 编程步骤1、 创建 SqlSessionFactory2、通过 SqlSessionFactory 创建 SqlSession3、通过 sqlsession 执行数据 库操作4、调用 session.commit()提交事务5、调用 session.close()关闭 会话MyBatis 的工作原理1)读 取 MyBatis 配置 文件:mybatis-...

MyBatis 编程步骤

1、 创建 SqlSessionFactory
2、通过 SqlSessionFactory 创建 SqlSession
3、通过 sqlsession 执行数据 库操作
4、调用 session.commit()提交事务
5、调用 session.close()关闭 会话

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 或者基本数据类型 ,并将最终结果返回。

本文地址:https://blog.csdn.net/Black_Customer/article/details/107417288

相关标签: # mybatis