MyBatis 一级缓存和二级缓存及ehcache整合
一级缓存
什么是缓存??
缓存是存储在内存(cache)中的数据,一般情况都存在内存,在内存数据存储满了,会存储到硬盘上(disk),或是在我们进行一些操作和配置也可以把缓存存储到磁盘中。
缓存的作用是什么??
缓存的作用可以减轻数据库的压力,减少用户对数据库的访问,可以说用户对数据库进行的重复操作在缓存中就可以实现操作,提高用户体验。
下面这张图是缓存的理解图
曾删改会对缓存造成影响。
写个测试,测试一下缓存是否存在: 答案是肯定的
现在测试一下进行曾删改数据,是否会对缓存造成影响?
二级缓存
二级缓存和一级缓存的区别, 一级缓存是存储在SqlSession作用域中生命周期是整个会话是进程级别的,二级缓存是可以跨进程的,实现数据共享。作用域是Mapper。
缓存的底层其实是个Map集合,key用于存储SQLId和sql,value存储的是sql的引用。
二级缓存默认是开启的,在大配置中,但是开启二级缓存要有三个要素。
二级缓存的开启方式: 1.在大配置中的setting设置二级缓存 2.在小配置中写cache自闭和标签 3.实体类继承Serializable
二级缓存的作用比一级缓存大,二级缓存并不是在一个会话中起作用,将一个会话结束,开启另一个会话二级缓存是否会起作用
ehcache缓存的配置
为什么要配置ehcache?
因为ehcache是专注缓存这块的,比mybatis自身的要快捷方便很多,因为mybatis注重的是框架。
1.在resources下可以上网查一下这个文件
2.在小配置中增加一条type写的是你ehcache的全路径
3.在项目的pom.xml引入ehcahce的jar包
MyBatis 一级缓存和二级缓存及ehcache整合的更多相关文章
- 八 mybatis查询缓存(一级缓存,二级缓存)和ehcache整合
1 查询缓存 1.1 什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存.
- Mybatis第八篇【一级缓存、二级缓存、与ehcache整合】
Mybatis缓存 缓存的意义 将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问题. myba ...
- mybatis缓存,包含一级缓存与二级缓存,包括ehcache二级缓存
一,引言 首先我们要明白一点,缓存所做的一切都是为了提高性能.明白了这一点下面我们开始进入正题. 二,mybatis缓存概要 ①.mybatis的缓存有两种,分别是一级缓存和二级缓存.两者都属于查询缓 ...
- MyBatis加强(1)~缓存机制(一级缓存、二级缓存、第三方缓存技术redis、ehcache)
一.缓存机制 使用缓存可以使应用更快地获取数据,避免频繁的数据库交互操作,尤其是在查询越多,缓存命中率越高 的情况下,缓存的作用就越明显. 1.缓存原理:Map ■ 查询时,先从缓存区查询:找到,返回 ...
- myBatis学习(9):一级缓存和二级缓存
正如大多数持久层框架一样,MyBatis同样提供了一级缓存和二级缓存的支持 1. MyBatis一级缓存基于PerpetualCache的HashMap本地缓存,其存储作用域为 Session,默认情 ...
- mybatis 详解(九)------ 一级缓存、二级缓存
上一章节,我们讲解了通过mybatis的懒加载来提高查询效率,那么除了懒加载,还有什么方法能提高查询效率呢?这就是我们本章讲的缓存. mybatis 为我们提供了一级缓存和二级缓存,可以通过下图来理解 ...
- mybatis源码分析(7)-----缓存Cache(一级缓存,二级缓存)
写在前面 MyBatis 提供查询缓存,用于减轻数据库压力,提高数据库性能. MyBatis缓存分为一级缓存和二级缓存. 通过对于Executor 的设计.也可以发现MyBatis的缓存机制(采用模 ...
- mybatis 一级缓存和二级缓存
1.默认是会话期内 一级session缓存 2.二级缓存: 引入二级缓存的jar, 配置 ehcache.xml, mapper.xml引入缓存<cache type="org.myb ...
- MyBatis 一级缓存、二级缓存全详解(一)
目录 MyBatis 一级缓存.二级缓存全详解(一) 什么是缓存 什么是MyBatis中的缓存 MyBatis 中的一级缓存 初探一级缓存 探究一级缓存是如何失效的 一级缓存原理探究 还有其他要补充的 ...
- [原创]关于mybatis中一级缓存和二级缓存的简单介绍
关于mybatis中一级缓存和二级缓存的简单介绍 mybatis的一级缓存: MyBatis会在表示会话的SqlSession对象中建立一个简单的缓存,将每次查询到的结果结果缓存起来,当下次查询的时候 ...
随机推荐
- python3 第三十二章 - 标准库概览
1. 操作系统接口 os 模块提供很多函数与操作系统进行交互︰ >>> import os >>> os.getcwd() # 返回当前的工作目录 'C:\\Pyt ...
- [转] Shader Blending
引用:1.Unity3D shader Blending2.[风宇冲]Unity3D教程宝典之Shader篇:第十三讲 Alpha混合 混合(Blending)是计算机呈现渲染结果的最后阶段,每一个像 ...
- Lambda表达式按字段名字排序
using System; using System.Collections.Generic; using System.Linq; using System.Linq.Expressions; us ...
- JS中的instanceof和typeof,以及特殊引用类型
1.instanceof是用于测试对象类型,通常格式为:a instanceof b,返回true或falise,表示为对象a是否是类型b的实例. typeof则是用于测试基本类型,包括undefin ...
- 《Linux就该这么学》第十五天课程
本次课所学习的是DNS域名解析服务! 下面提供一些DNS有关的内容 如需进一步学习,请前往https://www.linuxprobe.com/chapter-13.html 工作模式: 1.主服务器 ...
- Jmeter+ant集成接口测试报告
一.jdk1.8下载及环境配置 1.1 下载地址 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-download ...
- nodejs + 小程序云函数 生成小程序码
前言:这个东西坑死我了 业务需求要生成小程序码 然后我找了两天的资料 运行 生成一堆的乱码 死活就是不能生成 最后看了一遍博客 套用了一下 自己又简单的改了一下 nodejs 我是刚刚接触 有很多 ...
- cropper.js 裁剪图片
https://blog.csdn.net/weixin_38023551/article/details/78792400
- Qt5对XML文件操作
转自https://blog.csdn.net/hpu11/article/details/80227093 写入xml //写xml void WriteXml() { //打开或创建文件 QFil ...
- 前台js接收后台的json数据
后台返回的json数据,如php的: return json_encode($data); 在前台 js接收如下: function json2object(str){ var jsstr = str ...