2021-07-23

Mybatis缓存

一级缓存

一级缓存在sqlsession中,当我们发起一次查询时,会将结果保存在缓存中。
再次查询时是在缓存中查找,但是注意,当我们在关闭sqlsession,
调用sqlsession的增,删,改,或者commit,或者直接调用清空缓存的方法时,
都会清空缓存,再次查询时,依旧是访问数据库,也就是两次查询不是同一个对象。

二级缓存

二级缓存是在sqlsessionFactory对象中的缓存,
对同一个sqlsessionFactory对象创建的sqlsession共享同一个缓存,
保存的是键值对形式,当再次查询时,会再次创建一个 目标对象,
然后将缓存中的数据保存在该对象中。这就是为什么两次查询不是同一个对象的原因。
但是向数据库中查询次数只有一次。

开启二级缓存

1.mybatis主配置文件中,添加支持二级缓存。
2.Mapper.xml文件中添加支持二级缓存。
3.在相应的查询方法中添加支持二级缓存。

哪些情况下适合缓存?

1.当我们需要频繁查询
2.数据正确性,准确性要求不高的业务中。

哪些情况不适合缓存?

1.增删改等操作不适合缓存。
2.对数据正确性,准确性要求高,例如:银行,股票等。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值