目录
引言
配置文件内容
1 | <!-- 设置缓存器,不设置缓存器,设置useCache也没用 --> |
上一篇文章sql-session的执行器部分禁用了缓存
这篇文章打开缓存.看下执行器的流程…
1 | public Executor newExecutor(Transaction transaction, ExecutorType executorType) { |
一级缓存
mybatis的一级缓存无法关闭,只能修改作用域.默认为SqlSession.
作用域
默认作用域为sqlSession级别,可以理解为事务内共享.
改为Statement
存储位置
PrepetualCache
1 |
|
执行流程
1 |
|
二级缓存
二级缓存是事务共享的,所以,同一事务内的查询是不会走二级缓存的,因为事务可以回滚,而缓存不可以.
cache执行器的执行流程
1 |
|
事务与二级缓存
TransactionalCacheManager
代码不多,也很干净.
1 | public class TransactionalCacheManager { |