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

news/2024/12/22 23:26:07/

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

- 马士兵教育

  • 1、缓存概念
  • 2、二级缓存Encache集成
    • 2.1、导入依赖
    • 2.2、

1、缓存概念

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

Mybatis的缓存有三个级别。

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

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

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

2、二级缓存Encache集成

2.1、导入依赖

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

<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的查询结果都将进入缓存中,并且指明缓存的类型。

<mapper namespace="com.bobo.dao.EmpMapper"><cache type="org.mybatis.caches.ehcache.EhcacheCache" />...
</mapper>

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


http://www.ppmy.cn/news/1364588.html

相关文章

MFC 配置Halcon

1.新建一个MFC 工程&#xff0c;Halcon 为64位&#xff0c;所以先将工程改为x64 > VC 目录设置包含目录和库目录 包含目录 库目录 c/c ->常规 链接器 ->常规 > 链接器输入 在窗口中添加头文件 #include "HalconCpp.h" #include "Halcon.h"…

go 的使用总结

go的内存逃逸&#xff1f; go语言在编辑阶段通过逃逸分析把分配在栈上变量 分配到堆上去。 栈内存&#xff1a; 一段连续的内存&#xff0c;便于高效运行指令过程中的临时变量存储。 堆内存&#xff1a; 主要由垃圾回收器 回收没有被引用的指针。 逃逸分析&#xff1a;栈内…

Java 学习和实践笔记(23):继承(extends)的概念以及instanceof的使用

面向对象编有三大特征&#xff0c;分别是继承、封装和多态。本节重点讲继承的概念以及instanceof的使用。 继承是面向对象编程的三大特征之一。继承让我们更加容易实现类的扩展。实现代码的重用&#xff0c;不用再重新发明轮子(don’t reinvent wheels)。 继承有两个主要作用:…

nginx反向代理和负载均衡配置

配置文件 位置 : /usr/local/software/nginx/conf vim nginx.conf 在http大括号下配置: upstream wnBalance{ server ip:端口 weight比重 :1或者2; 1为配重高 server ip:端口 weight1; } wnBalance : 代表括号中两个ip的变量名 位置 : /usr/local/so…

计算机网络的基础知识

网络的性能指标&#xff1a;网络速率&#xff0c;bpsbit/s&#xff1b; 时延包括四个组成部分&#xff1a;发送时延、传播时延、排队时延、处理时延&#xff1b; 网络各个层次结构设计的基本三原则&#xff1a;各个层次之间是相互独立的&#xff0c;每一个层之间有足够的灵活…

chrome闪退后打不开问题 打开立即闪退

今天刚遇到&#xff0c;大概率是某些网站引起的闪退&#xff0c;重启和清理也不能解决问题 网上到处都是答非所问&#xff0c;还有什么打开chrome再进行设置这种回答 在此解决下 注意该方法根据我测试&#xff0c;唯一会损失的是chrome扩展&#xff0c;可以提前去 C:\Users…

Docker - compose常用命令(常规操作顺序)

----------------------------------------------------------【Docker】-------------------------------------------------------------------- 【本地部署】 构建Docker镜像 docker build -t your-image-name .运行容器 docker run -p 8080:8700 your-image-name , 本地验…

Mac 配置Clion Qt 调试显示变量值

背景 使用Clion开发Qt程序&#xff0c;在进行调试时&#xff0c;会看不到Qt类的变量值&#xff0c;只有指针形式&#xff0c;对于调试很不方便。 环境&#xff1a; Macbook ProCPU&#xff1a;M3Qt 5.15.13CLion 2023.3.4 解决方案 为了让Clion能显示Qt类的值&#xff0c;…