Mybatis-plusu一级缓存和二级缓存

6 篇文章 0 订阅
3 篇文章 0 订阅

简介

1.一级缓存是SqlSession级别的缓存。在数据库操作时需要构建sqlSession对象,在对象中有一个数据结构(HashMap)用于存储缓存数据。不同的sqlSession之间的缓存数据区域(HashMap)之间是互不影响的。一级缓存默认开启不用配置。

2.二级缓存是mapper级别的缓存,多个SqlSession去操作同一个Mapper的sql语句,多个SqlSession可以共用二级缓存,二级缓存是跨SqlSession的。二级缓存的开启(实体类必须序列化),然后在配置文件里面配置。

详情总结

1.Mybatis-plus一级缓存:

一级缓存默认开启,属于会话级别,一个会话做多次做相同的查询会开启,如果对查询的数据进行更新,删除等操作时,再次查询会从数据库查询而不用一级缓存。

2.Mybatis-plus二级缓存:

二级缓存的开启:

1)除了在配置文件中打开开关mybatis-plus.configuration.cache-enabled=true

2)还要再mapper对应开启,<cache/>

3)对应实体类实现Serializable接口

如果某个sql语句要禁用二级缓存,需要在具体的xml的sql语句定义处加上useCache="flase"

其他

1.在mapper的同一个namespace中,如果有其他的inset,update,delete操作后需要刷新缓存,如果不执行刷新缓存操作会出现脏读。

2.设置statement配置中flushCache="true"属性,可以实现二级缓存的刷新,false可能出现脏读。

openSession.clearCache()实现对一级缓存的刷新。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值