疑问

疑问

1.为什么说如果将list作为缓存对象的话,命中率会比较低呢?
  老师你能举个例子什么的嘛? 
  
2.是不是我们在Mapper映射文件中使用flushCache="true" 就可以
  不用在程序中使用commit()了呀?


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好!

  1. selectAll查询的是所有的信息。通常数据库里的数据是经常改变的。所以查询所有的数据时,数据库中的数据已经改变的可能性比较大,所以命中率不高

  2. commit和清空缓存是不一样的。这里只是设置了清空缓存的时机。 如果不写commit数据时无法真正的插入数据库中的。你可以理解为是一个逻辑insert操作。commit之后才是物理操作。

如果我的回答解决了你的疑惑,请采纳,祝学习愉快~

  • jia_蛙 提问者 #1
    可以这样理解嘛?flushCache="true" 是单纯的清空缓存,而commit是提交数据到数据库并且清空缓存
    2020-03-02 08:16:17
  • jia_蛙 提问者 #2
    还是说 commit是提交数据完之后会调用清空缓存的方法进行缓存清空?
    2020-03-02 08:17:31
  • 好帮手慕柯南 回复 提问者 jia_蛙 #3
    同学你好! 1. flushCache="true" 是单纯的清空缓存 2. 老师并没有发现有调用清空缓存的方法。所以推测这里应该是commit之后会直接清空缓存。 祝学习愉快~
    2020-03-02 13:49:51
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师