Mybatis框架-----Mybatis缓存

Mybatis框架-----Mybatis 缓存

🍎姓名:洋葱爱代码🍎
🍊喜欢:Java编程🍊
🍉重要的事情说三遍!!!🍉
🍓欢迎大家来访问哦,互相学习🍓
🍋欢迎大家来访问哦,互相学习🍋
🍑欢迎大家来访问哦,互相学习🍑

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

🍎合抱之木,生于毫末;百丈之台,起于垒土;千里之行,始于足下。------《老子》
🍊今日学习任务!!!!!
🍊1、Mybatis的一级缓存和二级缓存

🔥一、Mybatis 缓存

🍊 缓存是一般的ORM框架都会提供的功能,目的就是提升查询的效率和减少数据库的压力
Mybatis会将相同插叙条件的SQL语句的查询结果存储在内存或者某种缓存介质当中,当下次遇到相同的查询SQL时候不在执行SQL,而是直接从缓存中获取结果,减少服务器的压力,尤其是在查询越多,缓存命中率高的情况下,使用缓存对性能的提高更明显
🍊Mybatis缓存方式分为一级缓存和二级缓存,同时可以配置关于缓存设置。
🍊一级缓存是将结果缓存在SqlSession对象中,二级缓存是存储在SqlSessionFactory对象中。默认情况下,Mybatis开启一级缓存,没有开启二级缓存。
🍊当数据量大的时候可以借助一些第三方缓存技术来协助保存Mybatis的二级缓存数据.

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

🔥二、一级缓存的使用

🍊1、一级缓存也叫本地缓存,Mybatis的一级缓存是在会话(SqlSession)层面进行缓存的。
🍊2、Mybatis的一级缓存是默认开启的,不需要任何的配置
🍊3、一级缓存示意图:
在这里插入图片描述
🍊4、一级缓存的生命周期
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
🍊5、如何判断两次查询是完全相同的查询
Mybatis 认为,对于两次查询,如果以下条件都完全一样,那么就认为它们是完全相同
的两次查询

  • 传入的 statementId。
  • 查询时要求的结果集中的结果范围。
  • 这次查询所产生的最终要传递给 Preparedstatement 的 Sql 语句字符串。
  • 传递的参数值

在这里插入图片描述
✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

🔥三、二级缓存的使用

🍊 1、Mybatis的二级缓存是Application级别的缓存,它可以提高对数据库查询的效率,以提高应用的性能.
🍊2、二级缓存是SqlSessionFactory上的缓存,可以是由一个SqlSessionFactory创建的不同的SqlSession之间共享缓存数据。默认并不开启。
🍊3、SqlSession 在执行 commit()或者 close()的时候将数据放入到二级缓存。
在这里插入图片描述 🍊4、Sqlsession 共享二级缓存
在这里插入图片描述
🍊5、二级缓存的配置方式
二级缓存的开启需要进行配置,实现二级缓存的时候,MyBatis 要求缓存的 POJO 必须
是可序列化的, 也就是要求实现 Serializable 接口。在映射配置文件中配置cache就可以
开启缓存了。
🍊6、二级缓存特点
🍎6.1、 映射语句文件中的所有 select 语句将会被缓存。
🍊6.2、 映射语句文件中的所有 insert、update 和 delete 语句会刷新缓存。
🍋6.3、 二级缓存是以 namespace 为单位的,不同 namespace 下的操作互不影响
🍓6.4、 如果在加入cache标签的前提下让个别 select 元素不使用缓存,可以使用 useCache属性,设置为 false。
🍑6.5、 缓存会使用默认的 Least Recently Used(LRU,最近最少使用的)算法来收回。
🍉6.6、 根据时间表,比如 No Flush Interval,(CNFI 没有刷新间隔),缓存不会以任何时间顺序来刷新。
🍊6.7、 缓存会存储列表集合或对象(无论查询方法返回什么)的 1024 个引用
🍎6.8、 缓存会被视为是 read/write(可读/可写)的缓存,意味着对象检索不是共享的,而且可以安全的被调用者修改,不干扰其他调用者或线程所做的潜在修改。
🍊7、cache的可选属性
在这里插入图片描述
🍊7、二级缓存测试
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨

🍑每日一夸!!!
🍑就如同薛之謙对毛不易夸奖的
🍑"你现在就是流星" , 但是我相信你 ,你坚持下去你就是巨星"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

洋葱爱代码

互相学习,互相进步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值