mybatis的缓存基础
所有缓存的基础:
1.什么是缓存
缓存是一个容器,用来存放我们想要的数据
2.缓存的思想
但用户第一次查询的时候,缓存这个容器中还没有数据,此时去查询数据库
查询数据库得到的结果,一方面返回给应用程序,另一方面放到缓存中(容器中)
但用户第二次访问的时候,此时容器中已经有了数据此时直接从容器中获取数据即可,不需要查询数据库了。
3.缓存的开发步骤
if(查看缓存中有没有){
直接从缓存中取出
}else{
//查询数据库,返回数据,把数据存放到缓存中
}
4.缓存的好处:
①快速 速度高(前提把缓存放到内存中)
②减少与数据库的交互,减小mysql的压力
③提高用户体验
5:缓存的弊端:
查询出来的数据和真实的数据可能存在不一致的情况,导致数据不同步
6:如何解决这个弊端:
在进行数据修改的时候,把缓存清除掉
或者定时实时同步
mybatis缓存的基础:
第一种:一级缓存(默认开启)
一级缓存是sqlSession级别的缓存,可以这样理解:通过同一个sqlSession获得的对象,操作同样的方法,都会有一级缓存
存储:是一个Map集合,存储在内存中。key里面保存查询语句,条件,元信息等(可以看出来并不保存对象,所以和对象无关),value里面存放查询出来的结果
但是:SSM整合时,一级缓存失效
第二种:二级缓存
二级缓存是sqlSessionFactory级别的缓存
二级缓存是nameSpace级别下的缓存(说明要在mybatis_config.xml的namespace里面放入<cache/>)
也就是说,通过同一个sqlSessionFactory获得sqlSession,再获得mapper调用同样的方法会有二级缓存。
二级缓存:也是Map集合,可能存在内存中,也可能存在硬盘上(所以实体类要实现可序列化接口)
key:查询语句,条件,元信息等组成,value里面存放查询出来的结果
mybatis的缓存基础相关推荐
- 10、mybatis中缓存的使用
对于初学者,如何进行mybatis的学习呢?我总结了几点,会慢慢的更新出来.首先大家需要了解mybatis是什么.用mybatis来做什么.为什么要用mybatis.有什么优缺点:当知道了为什么的时候 ...
- Spring Boot之基于Redis实现MyBatis查询缓存解决方案
转载自 Spring Boot之基于Redis实现MyBatis查询缓存解决方案 1. 前言 MyBatis是Java中常用的数据层ORM框架,笔者目前在实际的开发中,也在使用MyBatis.本文主要 ...
- 【MyBatis源码解析】MyBatis一二级缓存
MyBatis缓存 我们知道,频繁的数据库操作是非常耗费性能的(主要是因为对于DB而言,数据是持久化在磁盘中的,因此查询操作需要通过IO,IO操作速度相比内存操作速度慢了好几个量级),尤其是对于一些相 ...
- 深入理解MyBatis一级缓存和二级缓存【超详细源码解析】
视频地址:https://www.bilibili.com/video/BV1nP411A7Gu MyBatis的缓存是一个常见的面试题 一级缓存的作用域为何是 sqlSession.二级缓存的作用域 ...
- 深入了解MyBatis二级缓存
深入了解MyBatis二级缓存 一.创建Cache的完整过程 我们从SqlSessionFactoryBuilder解析mybatis-config.xml配置文件开始: Reader reader ...
- springboot mybatis 事务_SpringBoot 下 Mybatis 的缓存
"IT魔幻屋"致力于让你遇见更好的自己! 说起 mybatis,作为 Java 程序员应该是无人不知,它是常用的数据库访问框架.与 Spring 和 Struts 组成了 Java ...
- 通过源码分析MyBatis的缓存
前方高能! 本文内容有点多,通过实际测试例子+源码分析的方式解剖MyBatis缓存的概念,对这方面有兴趣的小伙伴请继续看下去~ MyBatis缓存介绍 首先看一段wiki上关于MyBatis缓存的介绍 ...
- Mybatis二级缓存原理
记录是一种精神,是加深理解最好的方式之一. 最近看了下Mybatis的源码,分析了二级缓存的实现方式,在这里把他记下来.虽然这不复杂,对这方面的博客也有很多,写的也很好.但我坚信看懂了是其一,能够教别 ...
- mybatis的缓存机制(一级缓存二级缓存和刷新缓存)和mybatis整合ehcache
1 查询缓存 1.1 什么是查询缓存 mybatis提供查询缓存,用于减轻数据压力,提高数据库性能. mybaits提供一级缓存,和二级缓存. 一级缓存是SqlSession级别的缓存.在 ...
- Mybatis一级缓存,二级缓存的实现就是这么简单
介绍 又到了一年面试季,所以打算写一点面试常问的东西,争取说的通俗易懂.面试高级岗,如果你说熟悉Mybatis,下面这些问题基本上都会问 Mybatis插件的实现原理? 如何写一个分页插件? Myba ...
最新文章
- mongodb基础知识_3
- Minio的容量算法及实际存储空间计算公式
- sscanf与正则表达式
- 微软服务器延迟,经过六个多月的延迟,微软终于推出Hyper-V Server 2019
- 解决Linux中文乱码问题
- 获取数据库值,再在其值上做修改
- 游戏开发之C++引用(C++基础)
- eclipse mac oracle数据库,Eclipse连接Oracle数据库的具体步骤
- 2011热门论坛排行top100
- linux下ssh安装教程,linux安装ssh
- word多级目录设置和自动生成目录
- 【电力电子】【2012.07】基于功率因数校正的三相整流器设计与仿真
- windows下nginx常见问题记录
- 青春不散场,CSDN毕业季有奖征文开启啦~~
- 原生js判断IE浏览器版本
- 模块一 day05 数据类型(上)
- 致敬2020——打工人的成长故事
- [软件人生]人生强硬也要懂得弯折——谈人性的两面
- 《通信技术导论(原书第5版)》——1.11 网络布线
- uniapp:生成二维码
热门文章
- 【非原创】codeforces 1070C Cloud Computing 【线段树树状数组】
- 剑指offer python版 剪绳子
- ui-sref与$state.go()的使用
- 【ZZ】神与学霸的区别
- 使用 IntraWeb (25) - 基本控件之 TIWRegion
- [JAVA][Eclipse]JVM terminated. Exit code=13
- jquery中防止和其他JS框架冲突的办法
- 解决VisualStudio2008下asp.net mvc开发向View中添加服务器控件崩溃的问题
- 本地环境测试二级域名
- python orderdict_Python OrderedDict字典排序方法详解