zoukankan      html  css  js  c++  java
  • Mybatis整体设计探究

    本文主要探究Mybatis的整体程序设计,理清楚框架的主要脉络。 

    一、总体流程

    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、返回处理结果

    二、功能设计

    Mybatis的功能架构分为三层:

    1. API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库。接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理。
    2. 数据处理层:负责具体的SQL查找、SQL解析、SQL执行和执行结果映射处理等。它主要的目的是根据调用的请求完成一次数据库操作。
    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或者基本数据类型,并将最终结果返回。

  • 相关阅读:
    SAP S/4HANA extensibility扩展原理介绍
    SAP CRM系统订单模型的设计与实现
    使用nodejs代码在SAP C4C里创建Individual customer
    SAP Cloud for Customer Account和individual customer的区别
    Let the Balloon Rise map一个数组
    How Many Tables 简单并查集
    Heap Operations 优先队列
    Arpa’s obvious problem and Mehrdad’s terrible solution 思维
    Passing the Message 单调栈两次
    The Suspects 并查集
  • 原文地址:https://www.cnblogs.com/johnvwan/p/12083693.html
Copyright © 2011-2022 走看看