原理分析之二:框架整体设计
来源:互联网 发布:淘宝店铺资质60000 编辑:程序博客网 时间:2024/06/05 06:19
1.引言
本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络。后面文章我们再详细讲解各个组件。
2.整体设计
2.1 总体流程
(1)加载配置并初始化
触发条件:加载配置文件
配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。
(2)接收调用请求
触发条件:调用Mybatis提供的API
传入参数:为SQL的ID和传入参数对象
处理过程:将请求传递给下层的请求处理层进行处理。
(3)处理操作请求
触发条件:API接口层传递请求过来
传入参数:为SQL的ID和传入参数对象
处理过程:
(A)根据SQL的ID查找对应的MappedStatement对象。
(B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。
(C)获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。
(D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。
(E)释放连接资源。
(4)返回处理结果
将最终的处理结果返回。
2.2 功能架构设计
功能架构讲解:
我们把Mybatis的功能架构分为三层:
(1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
(2)数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
(3)基础支撑层:负责最基础的功能支撑,包括连接管理、事务管理、配置加载和缓存处理,这些都是共用的东西,将他们抽取出来作为最基础的组件。为上层的数据处理层提供最基础的支撑。
2.3 框架架构设计
框架架构讲解:
(1)加载配置:配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。
(2)SQL解析:当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map、JavaBean或者基本数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement,然后根据传入参数对象对MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。
(3) SQL执行:将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果。
(4)结果映射:将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap、JavaBean或者基本数据类型,并将最终结果返回。
- 原理分析之二:框架整体设计
- 原理分析之二:框架整体设计
- 原理分析之二:框架整体设计
- 原理分析之二:框架整体设计
- 原理分析之二:框架整体设计
- 原理分析之二:框架整体设计
- 原理分析之二:框架整体设计
- 原理分析之二:框架整体设计
- 【mybatis源码分析】原理分析之二:框架整体设计
- Mybatis原理学习2:框架整体设计
- Mybatis整体框架设计
- ExtAspNet应用技巧(二十一) - Ext4JSLint之整体框架
- KDJY整体客户端框架分析
- android-linux系统调用原理之整体系统框架实现原理之OPEN实现
- Okio框架分析--之二
- Python爬虫(二):整体设计
- Libev源码分析 -- 整体设计
- Libev源码分析 -- 整体设计
- 程序员爱上网站[整理]
- Fedora开机直接进入终端界面
- myEclipse设置java编译环境和运行环境
- 查找算法
- Android 四种常用设计模式
- 原理分析之二:框架整体设计
- 针对"您的计算机配置似乎是正确的,但该设备或资源(DNS 服务器)没有响应"问题解决
- 纯JS实现省市县三级联动
- 自定义Android View组件——实现雷达图效果
- ELF文件和BIN文件
- 修改数据表
- Ajax发送和接收请求
- 第三届_海盗喝酒
- OC加强-Foudation