`

原理分析之二:框架整体设计

阅读更多

 

1.引言

本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络。后面文章我们再详细讲解各个组件。

 

2.整体设计

2.1 总体流程

(1)加载配置并初始化

      触发条件:加载配置文件

      配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。

      

(2)接收调用请求

      触发条件:调用Mybatis提供的API

      传入参数:为SQLID和传入参数对象

      处理过程:将请求传递给下层的请求处理层进行处理。

          

(3)处理操作请求

       触发条件:API接口层传递请求过来

       传入参数:为SQLID和传入参数对象

       处理过程:

        (A)根据SQLID查找对应的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接口层接收到调用请求时,会接收到传入SQLID和传入对象(可以是MapJavaBean或者基本数据类型),Mybatis会根据SQLID找到对应的MappedStatement,然后根据传入参数对象对MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数。

(3) SQL执行:将最终得到的SQL和参数拿到数据库进行执行,得到操作数据库的结果。

(4)结果映射:将操作数据库的结果按照映射的配置进行转换,可以转换成HashMapJavaBean或者基本数据类型,并将最终结果返回。

  • 大小: 17.3 KB
  • 大小: 121.6 KB
分享到:
评论
13 楼 qq_32637841 2016-07-20  
非常棒,怎么不更行了呢?我还准备看完这个看源码呢
12 楼 u012499882 2016-04-13  
11 楼 geyaandy 2015-05-04  
10 楼 xlb744868186 2014-11-25  
好,赞一个
9 楼 qnamqj 2014-08-13  
请问下你这些图都是用什么工具画的,学习下,希望不吝赐教,万分感谢
8 楼 hngmduyi 2014-02-18  
 
7 楼 KingZha 2014-01-21  
高人啊 不错不错
6 楼 huanacouple 2013-10-17  
写得很不错,希望继续,真心用脑思考有价值的文字不好找呀!
5 楼 lotuo 2013-07-10  
写的不错!!!
4 楼 ludabing 2013-03-29  
[/color][color=yellow]
3 楼 iamholiday 2012-08-01  
不错支持
2 楼 fengyuan1314 2012-05-21  
支持支持,希望继续写下去...
1 楼 lengyue309 2012-04-19  
写的非常不错!!!

相关推荐

    基于Javascript原型的Zepto框架设计.pdf

    为了深入了解前端开发中的框架设计原理,以Zepto前端框架为例,利用Javascript原型链的相关知识,采用原生Javascript与框架对比的方法剖析了框架整体设计思路,细致分析了框架的大致架构,重构了Zepto对象原型,并...

    Android应用框架原理与程式设计36技(中文)_高焕堂(著

    根据提供的信息,《Android应用框架原理与程序设计36技》由高焕堂撰写,该书主要探讨了Android应用框架的设计原则和技术细节,并提供了丰富的实践案例。以下是对标题、描述及部分内容涉及的关键知识点进行的深入解析...

    微信小程序源码-Railay:整体框架.zip

    2. 样式设计:wxss文件展示了如何使用微信小程序的CSS扩展来实现响应式布局和动画效果。这包括选择器、单位、颜色、布局模型(如Flexbox)等。 3. 业务逻辑:js文件包含了应用程序的核心逻辑,如数据管理、网络请求...

    微信小程序 Railay:整体框架 (源码).rar

    在"微信小程序 Railay:整体框架 (源码).rar"这个压缩包中,我们能够获取到Railay框架的完整源代码,这对于深入理解其工作原理以及定制化开发是非常有价值的。 1. 微信小程序框架: 微信小程序框架基于WXML...

    框架设计原则

    ### 框架设计原则与Dubbo设计原理详解 #### 一、框架设计的重要性 在软件开发领域,框架设计的好坏直接影响着项目的可维护性、可扩展性和整体性能。一个优秀的设计不仅能够提升开发效率,还能减少后期维护成本。...

    高仿Railay:整体框架小程序源码.zip

    【标题】"高仿Railay:整体框架小程序源码.zip" 涉及的主要知识点是微信小程序(wx-app)的开发,尤其是通过模仿Railay这一知名应用的设计来构建一个完整的小程序框架。Railay通常指的是在泰国知名的攀岩胜地,而在...

    Spring技术内幕:深入解析Spring架构与设计原理

    《Spring技术内幕:深入解析Spring架构与设计原理(第2版)》从源代码的角度对Spring的内核和各个主要功能模块的架构、设计和实现原理进行了深入剖析。你不仅能从本书中参透Spring框架的出色架构和设计思想,还能从...

    单片机原理及应用15:AT89S51单片机的应用系统设计.pptx

    - **硬件设计应考虑的问题**:包括电路的可靠性和稳定性,以及如何将硬件设计与软件设计相结合,以提高整体性能。 - **典型的单片机应用系统**:展示了不同类型的单片机应用实例,帮助理解其工作原理和设计思路。 - ...

    Spring技术内幕:深入解析 Spring架构与设计原理.pdf

    本书在开篇之前对Spring的设计理念和整体架构进行了全面的介绍,能让读者从宏观上厘清Spring各个功能模块之间的关系;第一部分详细分析了Spring的核心:IoC容器和AOP的实现,能帮助读者了解Spring的运行机制;第二...

    行业文档-设计装置-整体框架式陶瓷产品承烧板.zip

    《整体框架式陶瓷产品承烧板》是一份深入探讨陶瓷行业设计装置的专业文档,主要聚焦于整体框架式承烧板的设计、应用与优化。在这一领域,陶瓷产品的烧制过程至关重要,而承烧板作为承载陶瓷制品的关键设备,其设计...

    行业文档-设计装置-一种大型钢结构框架整体提升装置.zip

    在本压缩包文件“行业文档-设计...总的来说,这份文档详细阐述了大型钢结构框架整体提升装置的设计原理、施工方法、安全措施及相关的工程技术知识,对于从事钢结构工程设计、施工和管理的专业人员具有很高的参考价值。

    Railay:整体框架_企业城微信小程序js代码前台前端H5页面源码.rar

    此外,源码分析将有助于理解框架的工作原理,便于进行二次开发和性能优化。 对于源码的探索,可以按照以下步骤进行: 1. 分析入口文件:找到项目的主入口,了解启动流程和全局设置。 2. 深入组件:研究预置的UI组件...

    多层钢筋混凝土框架结构设计PPT教案.pptx

    《多层钢筋混凝土框架结构设计》是一份...总之,这份PPT教案详细介绍了多层钢筋混凝土框架结构的设计原理和方法,包括承重方案选择、构件尺寸的确定以及计算简图的建立,对于理解和设计这类结构具有重要的指导价值。

    集团企业指标数据体系框架设计的方法和思路.docx

    2. 指标体系框架设计原理:遵循系统性、全面性、结构性、差异性和重要性原则,以构建集团指标体系框架设计相关理论为指导。 指标体系框架要素: 1. 指标名称 2. 时间 3. 数值 4. 维度属性:物料维度、空间维度、...

    Android 应用框架原理与程序设计36技.pdf

    根据提供的信息,我们可以总结并深入探讨《Android应用框架原理与程序设计36技》这本书中的核心知识点。 ### 1. 应用框架概念 #### 1.1 何谓应用框架 - **定义**:应用框架是一种软件架构,它提供了一套预定义的...

    基于模式设计的MVC框架原理研究

    本文首先介绍了MVC的基本原理及其各组成部分的功能划分,然后深入分析了MVC设计中所涉及的设计模式,特别是Observer、Composite和Strategy三种模式的应用。 #### 1. MVC原理 MVC设计模式的核心思想是将应用程序的...

Global site tag (gtag.js) - Google Analytics