(三)MyBatis源码解读——执行器

什么是执行器?
所有我们在应用层通过sqlSession执行的各类selectXXX和增删改操作在做了动态sql和参数相关的封装处理后,都被委托给具体的执行器去执行,包括一、二级缓存的管理,事务的具体管理,Statement和具体JDBC层面优化的实现等等。所以执行器比较像是sqlSession下的各个策略工厂实现,用户通过配置决定使用哪个策略工厂。
mybatis提供了下列类型的执行器:
mybatis提供了两种类型的执行器:缓存执行器与非缓存执行器(使用哪个执行器是通过配置文件中settings下的属性defaultExecutorType控制的,默认是SIMPLE),是否使用缓存执行器则是通过执行cacheEnabled控制的,默认是true。
缓存执行器不是真正功能上独立的执行器,而是非缓存执行器的装饰器模式。
我们先来看非缓存执行器:非缓存执行器又分为三种,这三种类型的执行器都基于基础执行器BaseExecutor,基础执行器完成了大部分的公共功能,如下所示:
posted @ 2019-07-12 10:44  TangXinPing  阅读(388)  评论(0编辑  收藏  举报