Mybatis缓存简介
- MyBatis系统中默认定义了两级缓存:一级缓存和二级缓存
- 默认情况下,只有一级缓存开启,一级缓存无法关闭。(SqlSession级别的缓存,也称为本地缓存)
- 二级缓存需要手动开启和配置,他是基于namespace级别的缓存。
- 为了提高扩展性,MyBatis定义了缓存接口Cache。我们可以通过实现Cache接口来自定义二级缓存
mybatis缓存了解即可,一级缓存自动启用无法关闭,二级缓存个人感觉没啥必要,直接使用redis来缓存即可,而且二级缓存包含数据太广,大量数据走缓存数据就不是最新
一级缓存
与数据库同一次会话期间查询到的数据会放在本地缓存中。以后如果需要获取相同的数据,直接从缓存中拿,没必须再去查询数据库;
一级缓存不生效的情况:
二级缓存是namespace级别的缓存,命名空间即一个mapper接口。所以二级缓存作用就是只要查询是在同一个mapper接口中的查询,就会尝试从二级缓存里拿数据
- 查出的数据都会被默认先放在一级缓存中
- 只有会话提交或者关闭以后,一级缓存中的数据才会转到二级缓存中