mybatis-config. xml 文件可以加载多个映射文件,每个文件对应数据库中的一张表。
3、构造会话工厂:通过 MyBatis 的环境等配置信息构建会话工厂 SqISessionFactory。
4、创建会话对象:由会话工厂创建 SqISession 对象,该对象中包含了执行 SQL 语句的所有方法。
5、Executor 执行器:MyBatis 底层定义了一个 Executor 接口来操作数据库,它将根据 SqISession 传递
的参数动态地生成需要执行的 SQL 语句,同时负责查询缓存的维护。
6、MappedStatement 对象:在 Executor 接口的执行方法中有一个 MappedStatement 类型的参数,该参
数是对映射信息的封装,用于存储要映射的 SQL 语句的 id、参数等信息。
7.输入参数映射:输入参数类型可以是 Map、List 等集合类型,也可以是基本数据类型和 POJO 类
型。输入参数映射过程类似于 JDBC 对 preparedStatement 对象设置参数的过程。
8、输出结果映射:输出结果类型可以是 Map、List 等集合类型,也可以是基本数据类型和 POJO类
型。输出结果映射过程类似于 JDBC 对结果集的解析过程。
MyBatis 的功能架构是怎样的
我们把 Mybatis 的功能架构分为三层:
1、API接口层:提供给外部使用的接口 API,开发人员通过这些本地 API来操纵数据库。接口层一
接收到调用请求就会调用数据处理层来完成具体的数据处理。
2、数据处理层:负责具体的 SQL 查找、SQL 解析、SQL 执行和执行结果映射处理等。它主要的目
的是根据调用的请求完成一次数据库操作。
3、基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些
都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
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 和参数拿到数据库进行执行,得到操作数据库的结果。