xml
- 全局文件 mybatis-config.xml
- Mapper 会出现一个对象
数据库操作流程
其中SqlSession 有一个默认类DefaultSqlSession
Executor:执行器
Cache
Mybatis唯一缓存的接口:Cache;实现类:PerpetualCache(HashMap)
其中有一个包decorators 这里面有其它的缓存,这个采用的是装饰器模式
Mybaits有两级缓存
一级缓存
作用域: SqlSession、属于会话级别
关于如何设置的,在DefaultSqlSession,里面有
private final Configuration configuration;
private final Executor executor;
一级缓存什么时候失效?
select flushCache默认为false
更新的 flushCache默认为true
当为false,查询的数据为老数据
并且一级缓存并不能跨会话共享
二级缓存
作用域:namespace (同一个接口相同方法)
二级缓存在一级缓存之前
二级用CachingExecutor
缓存开启的方法,要在Mapper里面引入