代码编织梦想

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

- 马士兵教育

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里的查询时,都会优先在缓存中查找数据。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sinat_38393872/article/details/136309552

c#之wpf学习之路(2)-爱代码爱编程

目录 控件的父类 DispatcherObject类 DependencyObject类 DependencyObject 类的关键成员和方法 Visual类 Visual 类的主要成员和方法 UIElement类 UIElement 类的主要成员和功能 FrameworkElement类 FrameworkElement 类的主要成员

flask基础学习3-爱代码爱编程

参考视频:41-【实战】答案列表的渲染_哔哩哔哩_bilibili  flask 实现发送短信功能 pip install flask-mail # 安装依赖  我这里用登录的网易邮箱获取的授权码(登录QQ邮箱的授权码总是断开收不到邮件), # config # config mail MAIL_SERVER = 'smtp.163.com'

hashmap学习-爱代码爱编程

hashmap 1、hashmap 与 hashtable 的区别2、hashmap基本类型与包装类常用实现变量介绍初始容量和负载因子红黑树和链表转化HashMap的内部数据结构HashMap内部哈希算法

隐变量模型、auto-爱代码爱编程

TOC 1 生成模型以及隐变量模型角度理解2 自编码器AE2.1 简单理解AE2.2 概率角度理解AE 3 变分自编码器VAE3.1 理解VAE3.1.1 证据下界(Evidence Lower Boun

为什么要学习pmp知识,pmp培训哪家好?-爱代码爱编程

IT行业项目管理一枚,曾在做技术的时候对自己的职业发展越来越迷茫,不想干到35岁就参与到失业潮中,一直在想着办法提升自己的能力和竞争力,直到在领导嘴里了解到了PMP认证。也就是它对我的职业发展带来了不少的影响,这其中的讲述也就是PMP含金量的缩影,希望能够帮助到大家。 首先还是几句话讲一下PMP,PMP是美国项目管理协会(PMI)颁发的项目管理权威认证,

计算机操作系统(慕课版)第三章学习笔记-爱代码爱编程

第三章 处理机调度与死锁 1.1 调度的层次 高级调度、低级调度和中级调度。 中级调度:在内存和外存对换区之间按照给定的原则和策略选择进程对换。 目的: 提高主存利用率,调节系统负荷进行程序的调试、检

stm32f103学习笔记(六) rtc实时时钟(应用篇)-爱代码爱编程

目录 1. RTC 实时时钟的应用场景 2. RTC 的配置与初始化 2.1 设置 RTC 时钟源 2.2 初始化 RTC 寄存器 2.3 中断配置 2.4 备份寄存器配置 2.5 校准 RTC 3. 实例演示代码 4. 总结 1. RTC 实时时钟的应用场景         实时时钟(RTC)在嵌入式系统中具有广泛的应用场景,特

【学习笔记】健康平等 与 健康公平-爱代码爱编程

健康平等(Health Equality)和健康公平(Health Equity)是公共卫生领域中两个关键概念,虽然常被一起讨论,但它们有着不同的含义和侧重点。 健康平等(Health Equality) 健康平等强调为所有人提供相同的健康资源和机会,无论其背景或个人条件如何。这个概念着重于消除服务和治疗在访问上的差异,确保每个人都能获得相同水平的卫生

嵌入式学习第二十二天!(继续学习线程)-爱代码爱编程

线程相关函数接口: 1. 线程分离属性:     线程结束后,自动回收线程空间     1. pthread_attr_init: int pthread_attr_init(pthread_attr_t *attr);         功能:线程属性初始化     2. pthread_attr_destroy: int pthread_a

【学习总结】什么是dns?-爱代码爱编程

[Q&A] 什么是DNS? DNS(Domain Name System,域名系统)是一个分布式数据库系统,它在互联网上提供将易于记忆的域名与IP地址相互映射的服务。其主要功能是将人们能够理解的域名(如www.

unity ik 反向动力学 学习笔记-爱代码爱编程

目录 Unity IK 反向动力学 ik 示例代码: Unity IK 反向动力学 “IK是Inverse Kinematic的缩写,也就是反向动力学。是根据骨骼的终节点来推算其他父节点的位置的一种方法。比如通过手的位置推算手腕、胳膊肘的骨骼的位置。” 适用的场景:比如角色需要拿各种不同的东西,让角色的手能符合各种不同的东西的握持位置,这

java swing游戏开发学习4-爱代码爱编程

内容来自RyiSnow视频讲解 玩家地图元素碰撞 这一节实现了,玩家角色与地图上树木、水、墙的碰撞检测,当玩家行走到这样的瓷砖贴图的时候,将不能再继续前进。 在这里,作者的实现是每个方向,判断2个点是否与前进方向的so

【洛谷学习自留】p5707 上学迟到-爱代码爱编程

解题思路:         1.先用给出的时间和速度(如果无法整除,则时间加一),计算出时间(分),然后将时间加上10分钟。          2.创建一个计时器,设置一个日期,保证时分秒部分,分别为8,0,0。然后用计时器减去第一步求得的时间,得到最终的时间。          3.创建一个格式化输出对象,输出最终时间的H和m部分。 代码实现:

【mysql】学习多表查询和笛卡尔积-爱代码爱编程

](https://img-blog.csdnimg.cn/21dd41dce63a4f2da07b9d879ad0120b.png#pic_center) ??个人主页: ??热门专栏: 华为鸿蒙系统学习|计算机网络|数

【ddd】学习笔记-爱代码爱编程

资源库的实现 如何重用资源库的实现,以及如何隔离领域层与基础设施层的持久化实现机制,具体的实现还要取决于开发者对 ORM 框架的选择。Hibernate、MyBatis、jOOQ 或者 Spring Data JPA(当然也包括基于 .NET 的 Entity Framework、NHibernate 或 Castle 等),每种框架自有其设计思想和原则