mybatis 缓存的介绍

mybatis 缓存的介绍

参考

https://blog.csdn.net/weixin_37139197/article/details/82908377
https://www.cnblogs.com/wuzhenzhao/p/11103043.html

一级缓存(本地缓存):

一级缓存也叫本地缓存,MyBatis 的一级缓存是在会话(SqlSession)层面进行缓存的。MyBatis
的一级缓存是默认开启的,不需要任何的配置。

总结

  1. 在同一个 SqlSession 中, Mybatis 会把执行的方法和参数通过算法生成缓存的键值, 将键值和结果存放在一个 Map 中,
    如果后续的键值一样, 则直接从 Map 中获取数据;
  2. 不同的 SqlSession 之间的缓存是相互隔离的;
  3. 用一个 SqlSession, 可以通过配置使得在查询前清空缓存;
  4. 任何的 UPDATE, INSERT, DELETE 语句都会清空缓存。

二级缓存:

二级缓存是用来解决一级缓存不能跨会话共享的问题的,范围是namespace 级别的,可以被多个SqlSession
共享(只要是同一个接口里面的相同方法,都可以共享),生命周期和应用同步。如果你的MyBatis使用了二级缓存,并且你的Mapper和select语句也配置使用了二级缓存,

在这里插入图片描述

执行顺序:

执行select查询的时候,MyBatis会先从二级缓存中取输入,其次才是一级缓存,
即MyBatis查询数据的顺序是:二级缓存 —> 一级缓存 —> 数据库。

二级缓存使用
在这里插入图片描述

1:配置文件开启
在这里插入图片描述
2:具体的mapper开启
在这里插入图片描述
缓存策略
eviction 对应的是回收策略, 默认为 LRU。

LRU: 最近最少使用, 移除最长时间不被使用的对象。

FIFO: 先进先出, 按对象进入缓存的顺序来移除对象。

SOFT: 软引用, 移除基于垃圾回收器状态和软引用规则的对象。

WEAK: 弱引用, 移除基于垃圾回收器状态和弱引用规则的对象。

在这里插入图片描述

引pom,
全局配置
在这里插入图片描述
具体使用
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值