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