MyBatis 框架概述——层次结构与核心流程

MyBatis 的层次结构


MyBatis的整体框架分为三层:
[接口层] [核心处理层] [基础支持层]


在这里插入图片描述

接口层:
作用:提供外部接口使用的API,通过这些接口进行数据库功能的调用。接口层会将请求数据转给核心处理层进行相应的操作。
具体体现:1.Mybatis提供的API;2.基于Mapper的接口

核心处理层:
作用:接收接口层的参数,执行后返回结果。
具体体现:
1.参数映射: 把接口中传入的参数解析并且映射成JDBC类型
2.SQL解析:解析xml文件中的SQL语句,包括插入参数,和动态SQL的生成;
3.SQL执行:执行SQL语句;
4.结果映射: 处理结果集,并映射成Java对象。

基础支持层:
作用:负责最基础的功能支撑,如数据源、缓存、日志、xml解析、反射、IO、事务等等。
将这些共用的东西抽出来作为最基础的组件,为上层核心处理层提供基础支持。

MyBatis 的核心流程


核心流程包括:参数映射,SQL解析,SQL执行,结果处理和映射。


在这里插入图片描述

1.加载配置并初始化(SQL解析)
配置有两处来源:
① 是配置文件(mybatis-config.xml、*mapper.xml、mapper)
② 是Java代码中的注解。
将配置文件内容解析封装到Configuration中,
将SQL的配置信息加载成一个MappedStatement对象,存储在内存中。

2.接收调用请求(映射参数)
调用Mybatis提供的API,传入参数对象

3.处理操作请求(SQL执行)
① 根据SQL的ID查找对应的MappedStatement对象
② 根据入参对象解析MappedStatement对象,得到最终要执行的SQL和执行入参
③ 获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到最终结果。
④ 根据MappedStatement对象中的结果映射配置,对得到的执行结果进行转换处理,并得到最终的处理结果。
⑤ 释放连接资源。

4.返回处理结果(结果数据)
返回处理结果。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值