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的过程如下: