MyBatis整体架构

1.1 MyBatis与ORM

ORM是Object与Relation之间映射. 包括Object->Relation和Relation->Object两方面.

Hibernate是一个完整ORM框架. 而MyBatis完成的是Relation->Object.这一点可以从

其官方网站看到.

MyBatis整体架构_第1张图片
image.png

http://mvnrepository.com/artifact/org.mybatis

MyBatis并不刻意于完成ORM(对象映射)的完整概念. 而是旨在让开发人员使用更简单、更方便的方式完成数据库操作功能. 这对于应用系统来说也是最实用的

1.2 MyBatis架构

MyBatis整体架构_第2张图片
image.png

1.2.1 接口层

接口层是MyBatis提供给开发人员的一套API.主要使用SqlSession接口.通过SqlSession接口和Mapper接口.开发人员,可以通知MyBatis框架调用那一条SQL命令以及SQL命令关联参数.

1.2.1 接口层
接口层是MyBatis提供给开发人员的一套API.主要使用SqlSession接口.通过SqlSession接口和Mapper接口.开发人员,可以通知MyBatis框架调用那一条SQL命令以及SQL命令关联参数.
SqlSession接口使用方式


MyBatis整体架构_第3张图片
image.png

Mapper接口使用方式


image.png

1.2.2 数据处理层

数据处理层是MyBatis框架内部实现.来完成对数据库具体操作.主要负责:

(1) 参数与SQL命令绑定

(2) SQL命令发送方式

(3) 查询结果类型转换

1.2.3 支撑层

支撑层用来完成MyBaits与数据库基本连接方式以及SQL命令与配置文件对应.主要负责:

(1) MyBatis与数据库连接方式管理

(2) MyBatis对事务管理方式

(3) SQL命令与XML配置对应

(4) MyBatis查询缓存管理

1.3 MyBatis调用流程

MyBatis整体架构_第4张图片
image.png

1.3.1 SqlSession:

接收开发人员提供Statement Id 和参数.并返回操作结果

1.3.2 Executor:

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

1.3.3 StatementHandler:

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

1.3.4 ParameterHandler:

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

1.3.5 ResultSetHandler:

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

1.3.6 TypeHandler:

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

1.3.7 MappedStatement:

维护了一条节点的封装

1.3.8 SqlSource:

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

1.3.9 Configuration:

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

1.4 MyBatis框架使用方式

1.4.1 基于XML配置文件: SQL命令声明在XML配置文件中

1.4.2 基于注解方式:SQL命令声明在注解中

你可能感兴趣的:(MyBatis整体架构)