Loading

MyBatis的一级、二级缓存

一级缓存

基于 PerpetualCache的HashMap 本地缓存,其存储作用域为Session,当Session进行flush或close之后,该Session中的所有Cache就将清空,默认打开一级缓存。

二级缓存

基于namespace和mapper的作用域起作用的,不是依赖于SQLsession,默认也是采用PerpetualCache,HashMap存储。需要单独开启,一个是核心配置,一个是mapper映射文件。
二级缓存需要缓存的数据实现Serializable接口。
只有会话提交或者关闭以后,一级缓存中的数据才会转移到二级缓存中。

二级缓存清理缓存

当某一个作用域(一级缓存Session/二级缓存Namespaces)的进行了新增、修改、删除操作后,默认该作用域下所有 select 中的缓存将被 clear。

posted @ 2024-05-12 23:50  worshipone  阅读(14)  评论(0)    收藏  举报