Mybatis源码解析,运行原理以及面试要点

27 篇文章 1 订阅
7 篇文章 0 订阅

1、获取数据库源DataSource

 

2、主要是层级结构里面的调用过程

 

3、如何获取SQL语句的

 

4、获取DDL ,执行SQL语句

解析Mappers有几种方式,官网上主要是四种:

源码里面是:

 

解析mapper里面的数值参数:

获取SQL的过程

 代码的流程主要是以下流程:

 6、主要是怎么样执行SQL的过程

Mybatis 有很多的执行器,通过前面的获取连接,下面需要执行器进行执行,执行器主要有以下几种:

 主要有三种类型:

从功能上来说,这三种执行器的差别在于:

ExecutorType.SIMPLE:这个执行器类型不做特殊的事情。它为每个语句的每次执行创建一个新的预处理语句。
ExecutorType.REUSE:这个执行器类型会复用预处理语句。
ExecutorType.BATCH:这个执行器会批量执行所有更新语句,也就是jdbc addBatch API的facade模式。
 

 默认的就是Simple类型。SimpleExcutor

1级缓存执行器,默认开启:true的情况

创建缓存的过程:

 本地第一次获取为null,然后本地获取key:

 获取本地内存的key:

 缓存如果为空,那么就直接查询数据库

 最底层是执行的是prepareStateMent对象,获取到的是resultSet对象,然后进行ResultSet进行封装,

 

 JAVA的类型与JDBC的类型进行匹配上。

7。总结,MyBatis的执行过程

 

MyBatis操作SQL的过程如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦思冥想行则将至

穷,有钱的大爷上个两分钱吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值