Mybatis—学习过程—Mybatis缓存之二级缓存
1.什么是Mybatis二级缓存
2.什么是Mybatis二级缓存图解
- 由图可知,三个sqlSession都是要对同一个mapper进行操作,这三个sqlSession是共享当前这个Mapper二级缓存区域的
流程
- sqlSession1最先进行查询,他在第一次进行查询的时候,也是会先来查询二级缓存区域,由于是一个,所以说二级缓存还是空的,所以查询不出来内容,所以会向数据库发起查询,并且把在数据库中查询出的数据存到二级缓存中一份
- sqlSession2也要进行查询,此时的二级缓存中有数据了,所以他可以直接在二级缓存区域中,把他想要的直接读到
- 只要有一个增加,修改,删除操作并提交了,那么就会清空二级缓存区域
-
在Mybatis中二级缓存需要手动配置打开
- 首先在全局配置文件sqlMapConfig.xml中加入如下配置
<settings> <setting name="cacheEnabled" value="true"/> </settings>
- 在UserMapper.xml 中加
<cache></cache>
- 如果使用注解,没使用xml文件,在mapper包中的所有接口上面加一个注解
@CacheNamespace
开启二级缓存
- 首先在全局配置文件sqlMapConfig.xml中加入如下配置
注意:
二级缓存存的并不是对象,是对象中的数据