MyBatis缓存机制
1-一级缓存
失效情况:
- 不同的SqlSession对应着不同的一级缓存
- 同一个SqlSession但是有不同的查询条件
- 同一个SqlSession在查询相同条件时执行了任何一次增删改操作
- 同一个SqlSession在查询相同条件时中间执行了手动清空缓存的操作
2-二级缓存
二级缓存作用在全局作用域,默认不开启,需要手动进行配置;
一个新的会话,会先去查找二级缓存中是否有对应数据,如果没有再发送SQL语句进行查询;
注意:如果SqlSession被关闭后,一级缓存会默认地放置在二级缓存当中;
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210706201717349.JPG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1dhbmdfUHJv,size_16,color_FFFFFF,t_70#pic_center)