mybatis二级缓存未生效
问题描述:
跟着老师的视频讲解操作,mybatis二级缓存一直命中率是0.0
上面是代码地址, 求指点。
相关代码:
https://gitee.com/qq376745187/mybatis.git
相关截图:
18
收起
正在回答 回答被采纳积分+1
1回答
好帮手慕小尤
2022-05-24 10:27:28
同学你好,1、因网络的问题,老师无法查看同学提交的网站,建议同学在问答区以复制粘贴的方式反馈代码。
2、二级缓存的命中率为0。是因只会执行一次SQL。
原因:这涉及到二级缓存的缓存什么时候存入。只有当当前的sqlSession.close()时,该sqlSession的数据才会存入二级缓存。在同一sqlSession下时,肯定没有执行.close()关闭sqlSession,自然也就没有存入二级缓存。第二次执行却没有重新发送sql语句,是因为第二次调用的是一级缓存中的数据,这两次查询使用的是同一个sqlSession对象。
如果想让二级缓存命中率不为0,需要先开启一个sqlSession,执行一个sql语句,然后关闭该sqlSession,然后在创建一个新的sqlSession,执行相同的sql语句,这时,二级缓存才会命中。
祝学习愉快!
java工程师2020版
- 参与学习 人
- 提交作业 9402 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧