MyBatis缓存结构
1、一级查询缓存,是SqlSession级别的缓存。在操作数据库的时候,每一个SqlSession类的对象有一个数据结构(HashMap),不同的实例之间的数据结构是互不影响的。
2、二级缓存Mapper级别的缓存,多个SqlSession类的实例对象操作同一个Mapper配置文件中的SQL语句,多个SqlSession类的实例对象可以共用一个二级缓存。

1、图解

解释:当实例化一个SqlSession对象的时候,第一次查询时会与数据库连接所有操作,这个时候会把结果缓存在SqlSession一级缓存区,第二次查询相同的时候直接从缓存区里获取结果,而不必再与数据库连接消耗资源;BUT,第一次查询后,对数据库进行了commit()处理就会将缓存清空,是为了保证缓存中的信息时最新的,避免脏读现象的发生。
eg:

从日志文件可以看出第二次查询的时候没有再单独与数据库进行连接等,而是直接输出的。

2、图解:参照一级缓存图解
要在全局配置文件中的setting属性进行配置

<setting name = "cacheEnabled" value = "true">

由于二级缓存是Mapper级别的,还要再需要开启二级缓存的具体mapper.xml文件中开启二级缓存,直接添加<cache/>就可以了。

最后我有一个问题想不通,怎么才能知道我现在用的是什么缓存呢?

MyBatis缓存结构相关推荐

  1. MyBatis(三)MyBatis缓存和工作原理

    MyBatis缓存 MyBatis提供了一级缓存和二级缓存,并且预留了集成第三方缓存的接口. 从上面MyBatis的包结构可以很容易看出跟缓存相关的类都在cache的package里,其底层是一个Ca ...

  2. 缓存在哪里_什么是MyBatis缓存技术

    MyBatis缓存 引言 在一个Web项目中,查询数据库中的操作算是一个非常常用的操作,但是有些数据会被经常性的查询,而每一次都去数据库中查询这些重复的数据,会很消耗数据库的资源,同时使得查询效率也很 ...

  3. redis的基本操作And数据持久化方式以及redis实现mybatis缓存

    Redis 1.NoSql # NoSql(Not Only Sql),不仅仅是sql,泛指非关系型数据库 2.NoSql的诞生 随着互联网web2.0网站的兴起,传统的关系型数据库在高并发和特大规模 ...

  4. 图解 | 聊聊 MyBatis 缓存

    文章目录 一.MyBatis 缓存中的常用概念 二.MyBatis 一级缓存 2.1 一级缓存原理 2.2 一级缓存配置 2.3 一级缓存考题 2.4 MyBatis 一级缓存失效的场景 2.5 My ...

  5. MyBatis缓存和二级缓存整合Redis

    MyBatis缓存和二级缓存整合Redis ⼀级缓存 缓存验证 在⼀个sqlSession中,对user表根据username进⾏两次查询,查看他们发出sql语句的情况 同样是对user表进⾏两次查询 ...

  6. MyBatis复习笔记6:MyBatis缓存机制

    MyBatis缓存机制 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制.缓存可以极大的提升查询效率. MyBatis系统中默认定义了两级缓存. 一级缓存和二级缓存. 默认情 ...

  7. 实际测试例子+源码分析的方式解剖MyBatis缓存的概念

    前言: 前方高能! 本文内容有点多,通过实际测试例子+源码分析的方式解剖MyBatis缓存的概念,对这方面有兴趣的小伙伴请继续看下去~ 欢迎工作一到五年的Java工程师朋友们加入Java架构开发:79 ...

  8. Mybatis 缓存系统源码解析

    Mybatis 缓存系统源码解析 转载于:https://juejin.im/post/5bfa50905188251d0920006c

  9. 常考数据结构和算法:设计LRU缓存结构

    题目描述 设计LRU缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能 set(key, value):将记录(key, value)插入该结构 get(key):返回key对应的val ...

  10. MyBatis学习总结(七)——Mybatis缓存

    一.MyBatis缓存介绍 正如大多数持久层框架一样,MyBatis 同样提供了一级缓存和二级缓存的支持 一级缓存: 基于PerpetualCache 的 HashMap本地缓存,其存储作用域为 Se ...

最新文章

  1. js_加入收藏夹功能
  2. 算法与数据结构 - 滑动窗口
  3. VTK:移除外表面用法实战
  4. java jnotify_Jnotify文件监控的用法以及Jar文件导入的方法
  5. 续——《RedHat/Fedora等非ubuntu的Linux系统星空极速netkeeper拨号上网 》
  6. 1.3编程基础之算术表达式与顺序执行 19 AXB问题
  7. AllWinner T113交叉工具链篇
  8. Phase2 Day22 JDBC
  9. 【lssvm预测】基于麻雀算法优化最小二乘支持向量机实现风电功率预测(多输入单输出)含Matlab源码
  10. 基于matlab的适应度曲线的代码,matlab常用的几个适应度评价函数分析.docx
  11. 信息检索与利用(第三版)第五章 信息法与综合性信息检索
  12. 用IF公式实现向上取整的结果
  13. checkbox 选中_山西男篮热身赛两胜江苏 张宁首秀表现不俗 为什么会选中他?
  14. 微信小程序引入小图标
  15. MATLAB中求传递函数代码
  16. FHQ Treap 详解
  17. 1.GraspNet-API之Grasp Lable Format
  18. CTP程序化交易入门系列之一:准备
  19. C语言英文背单词软件,C语言背单词程序
  20. 1.JAVASE 语言简述

热门文章

  1. 用matlab求傅里叶变换
  2. echart 最小值_EchartJS平均线、最大值、最小值
  3. 立体栅格地图_高精地图之3D栅格地图的应用
  4. python万能装饰器_python装饰器万能模板
  5. CDH未开启订阅前下载的安装包!
  6. 图的深度优先遍历java代码详解
  7. JQ实现图片预览(轮播,放大缩小,拖拽,ajax请求,旋转)
  8. JQ实现音乐插件并自动播放
  9. 【relations】MMD镜头+动作打包下载.zip
  10. 二叉树模型期权定价c语言程序,二叉树期权定价模型