MyBatis缓存为俩层体系。分为一级缓存和二级缓存。
一级缓存:
一级缓存默认开启,一级缓存的作用域是SqlSession级别的,这意味着当你更换SqlSession之后就不能再利用原来的SqlSession的一级缓存了。不同的SqlSession之间的一级缓存是隔离的。
但是在开发中更换SqlSession是更频仍的操作,所以一级缓存对我们的意义不太大。
利用了一级缓存,只查询了一次:
更换SqlSession后失效:
进行了俩次数据库查询:
二级缓存:
二级缓存的作用域是Mapper级别的,可以在多个SqlSession之间共享。
MyBatis二级缓存默认是关闭的。开启条件有四个:
- 在配置文件中通过settings配置cacheEnabled为true,但是当前MyBatis中已经默认配置为true,所以不用写,是一个建议性的配置。
- 在mapper文件中加入cache标签:
- 在sql标签中配置useCache属性,这个配置也可以省略。
- 存在变乱。MyBatis主动开启变乱,所以我们只必要将变乱进行commit提交即可。
总结:满足上述第二点(cache标签)和第四点配置(存在变乱)即可开启MyBatis二级缓存:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |