Mybatis学习笔记:缓存(未完成)

本文是自己的学习笔记,主要参考以下资料

  • 马士兵教育

1、缓存概念

缓存是针对一些大量的重复查询,将查询结果存到内存中,减少数据库的负担。

Mybatis的缓存有三个级别。

类别 说明
一级缓存 事务范围:缓存只能被当前事务访问。缓存的生命周期依赖于事务的生命周期当事务结束时,缓存也就结束生命周期。 在此范围下,缓存的介质是内存。
二级缓存 进程范围:缓存被进程内的所有事务共享。这些事务有可能是并发访问缓存,因此必须对缓存采取必要的事务隔离机制。 缓存的生命周期依赖于进程的生命周期,进程结束时, 缓存也就结束了生命周期。进程范围的缓存可能会存放大量的数据, 所以存放的介质可以是内存或硬盘。
三级缓存 集群范围:在集群环境中,缓存被一个机器或者多个机器的进程共享。 缓存中的数据被复制到集群环境中的每个进程节点, 进程间通过远程通信来保证缓存中的数据的一致性, 缓存中的数据通常采用对象的松散数据形式

一级缓存的作用不大,因为缓存数据仅存在于一次会话中,相当于一个方法。实际开发中我们查询的数据在一个方法中通过变量随时可以拿到,所以一级缓存的意义不大。

二级缓存是最常用的,还需要搭配redis或者encache来实现二级缓存。

2、二级缓存Encache集成

2.1、导入依赖

这里我们用encache实现二级缓存,所以先导入依赖。

xml 复制代码
<dependency>
   <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache</artifactId>
    <version>1.5.0</version>
</dependency>

<dependency>
    <groupId>org.mybatis.caches</groupId>
    <artifactId>mybatis-ehcache</artifactId>
    <version>1.1.0</version>
</dependency>

2.2、

在对应的mapper.xml增加一个配置。表明该mapper的查询结果都将进入缓存中,并且指明缓存的类型。

xml 复制代码
<mapper namespace="com.bobo.dao.EmpMapper">
    <cache type="org.mybatis.caches.ehcache.EhcacheCache" />
    ...
</mapper>

每次调用这个mapper里的查询时,都会优先在缓存中查找数据。

相关推荐
gjf05_0511 小时前
人该怎样活着呢?版本75.8
学习
li星野12 小时前
【学习记录】PCB与PCBA核心知识全解析:从设计到制造的关键细节
学习·制造
卿卿的产品经理日记13 小时前
【AI产品经理实战】Day 35|从“沉迷工具“到回归 AI 底层:Skill 收官、系统复盘与下一个 13 天
人工智能·学习·产品经理
一条泥憨鱼14 小时前
【从0开始学习计算机网络】| ARP 协议:地址解析,ARP 欺骗,链路层寻址
网络·后端·学习·计算机网络
HY小宝F14 小时前
树莓派智能摄像头系统 30 天重学计划之 Day 04 · HTTP / API:控制链入口 —— 学习总结
网络协议·学习·http
Go Work14 小时前
2026 Cadence SPB 24.1中文版安装图文详解(附安装包)
经验分享·笔记
ACP广源盛1392462567315 小时前
HDMI2.0 转 DP1.4 桥接方案评估:国产 GSV2125C@ACP 芯片选型笔记
笔记·硬件架构·hdmi·type-c·国产芯片
龙仔72515 小时前
RustDesk 自建服务器 Key 强校验配置笔记
运维·服务器·笔记
悟乙己15 小时前
AFAC2026 赛题四金融长文本 Agent竞赛学习笔记:赛题解析(一)
笔记·学习·金融
霍霍的袁16 小时前
【C++】哈希表实现指南:从原理到开放定址法、链地址法的实现
c++·学习·哈希算法·散列表·visual studio