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或者基本数据类型,并将最终结果返回。
- 大小: 17.3 KB
- 大小: 121.6 KB
分享到:
相关推荐
本书在开篇之前对Spring的设计理念和整体架构进行了全面的介绍,能让读者从宏观上厘清Spring各个功能模块之间的关系;第一部分详细分析了Spring的核心:IoC容器和AOP的实现,能帮助读者了解Spring的运行机制;第二...
《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从本书中参透Spring框架的出色架构和设计思想,还能从...
本书是国内唯一一本系统分析Spring源代码的著作,也是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔,Java开发者社区和Spring开发者社区联袂推荐。本书第1版不仅在内容上获得了读者的广泛...
《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》是国内一本系统分析Spring源代码的著作,也是Spring领域的问鼎之作,由业界拥有10余年开发经验的专业Java专家亲自执笔,Java开发者社区和Spring开发者...
Spring技术内幕:深入解析Spring架构与设计原理(第2版)》是国内唯一一本系统分析Spring源代码的著作,也是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔,Java开发者社区和Spring开发者...
内容概要:通过带着读者手写简化版 ...阅读建议:此资源以开发简化版Spring学习其原理和内核,不仅是代码编写实现也更注重内容上的需求分析和方案设计,所以在学习的过程要结合这些内容一起来实践,并调试对应的代码。
《计算机毕业设计:Java实现的学生成绩管理系统》是一项基于SSM框架的优质项目资源,专为满足学校对学生成绩管理高效化、精准化的需求而设计。该系统不仅适用于本科课程设计、毕业设计,也是Java学习者掌握SSM框架与...
第二部分深入阐述了各种基于IoC容器和AOP的JavaEE组件在Spring和的实现原理,第三部分讲述了ACEGI安全框架、DM模块以及Flex模块等基于Spring的典型应用的设计与实现。无论你是Java程序员、Spring开发者,还是平台...
提供有力的理论依据、实验依据和设计依据,例如提供一些开源代码、设计原理、 原理图、电路图、毕业设计lun-wen word版10000字+;开题报告,任务书等有效的资料, 也可以应用于课程设计、diy、毕业、参赛等不同场景...
Spring技术内幕:深入解析 Spring架构与设计原理,本书是国内唯一一本系统分析Spring源代码的著作,也是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔,Java开发者社区和Spring开发者社区...
学生可以通过这些论文了解到项目的整体框架和设计思路。 设计文档:详细记录了系统的设计过程,包括但不限于需求文档、系统架构设计、数据库设计、界面设计、功能模块设计等。学生可以根据这些文档进行系统的具体...
...2-1 万事俱备:SpringBoot项目环境准备2-2 以史为鉴:传统SSM工程搭建演示2-3 SB的优越感:SpringBoot工程搭建演示2-4 一图胜千言:框架整体启动流程第3章 初始化器解析【 万事开头难】本章会对系统初始化器做一...
本书没有局限于对LTE规范的简单翻译,而是基于作者的参会经历,对LTE研究和标准化过程中关键技术的取舍和设计方案的甄选过程进行了分析,诠释了LTE系统设计的思想,体现了标准化的整体设计、全面权衡的特点,因此...
从线性近似到非线性系统的研究取得了新的成就,借助微分几何的固有非线性框架来研究非线性系统的控制,已成为目前重要研究方向之一。为了实现各种复杂的控制任务首先要将被控制对象和控制装置按照一定的方式连接起来...
《计算机毕业设计:Java实现的理财管理系统(SpringBoot框架,源码+数据库+说明)》是一项专为本科课程设计、毕业设计及Java学习者精心打造的高品质资源。该系统基于SpringBoot框架,运用Java语言编写,实现了理财...
本书是国内唯一一本系统分析Spring源代码的著作,也是Spring领域的问鼎之作,由业界拥有10余年开发经验的资深Java专家亲自执笔,Java开发者社区和Spring开发者社区联袂推荐。本书第1版不仅在内容上获得了读者的广泛...
《计算机毕业设计:Java实现的智能家居管理系统(SSH框架,源码+说明+论文,保证可靠运行,附赠计算机答辩PPT模板)》是一项全面而深入的计算机毕业设计资源,它集Java编程、SSH框架应用、智能家居管理功能于一体,...
内容概要:通过带着读者基于SpringCloud框架实现...阅读建议:此资源以开发 学习其原理和内核,不仅是代码编写实现也更注重内容上的需求分析和方案设计,所以在学习的过程要结合这些内容一起来实践,并调试对应的代码。