架构图

mybatis的架构图如下
image.png
我们可以看到,其实mybatis的主流程就一条,
参数映射 => sql解析 => sql执行 => 结果映射

架构流程图

image.png

调用流程图

image.png

Mybatis重要组件

Executor,StatementHandler,ParameterHandler,ResultSetHandler被称为Mybatis的四大组件。

XMLConfigParser

加载全局配置信息和sql信息,然后封装到configuration对象中

SqlSessionFactory

负责产生SqlSession

SqlSession

接收开发人员提供Statement Id 和参数.并返回操作结果,一次CRUD操作对应一个SqlSession会话

Executor

MyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护

StatementHandler

封装了JDBC Statement操作,负责对JDBC statement 的操作,如设置参数、将
Statement结果集转换成List集合。

ParameterHandler

负责对用户传递的参数转换成JDBC Statement 所需要的参数

ResultSetHandler

负责将JDBC返回的ResultSet结果集对象转换成List类型的集合

TypeHandler

负责java数据类型和jdbc数据类型之间的映射和转换

MappedStatement

维护了一条节点的封装

SqlSource

负责根据用户传递的parameterObject,动态地生成SQL语句,将信息封装到
BoundSql对象中,并返回BoundSql表示动态生成的SQL语句以及相应的参数信息

Configuration

MyBatis所有的配置信息都维持在Configuration对象之中

SqlSource

BoundSql