本篇文章主要讲述的是BaseExecutor(基础执行器/一级缓存执行器),BaseExecutor的主要作用是:事务管理,执行关于一级缓存的操作。
BaseExecutor的存在是有必要的,如果没有BaseExecutor,那么只能把管理事务和一级缓存下放到SimpleExecutor、ReuseExecutor、BatchExecutor中,这样的话,就会让三个子类的代码重复性太高了,于是就把这一部分相同的操作都放到了BaseExecutor上
在分析BaseExecutor的源代码时,不会再延深它的三个子类实现的方法,也就是那些以do开头的方法,都会放到下一篇去讲,本文讲述的就是加了粗体这一块的方法,query()->query()->queryFromDatabase()->doQuery()
BaseExecutor
BaseExecutor并没有CachingExecutor那么复杂,这是因为BaseExecutor的实现的一级缓存功能是比较简单的,是线程不安全的,一级缓存的存活时间是非常短暂的,所以没有必要把BaseExecutor设计的太复杂