区别

1)一级缓存 Mybatis的一级缓存是指SQLSession,一级缓存的作用域是SQlSession, Mabits默认开启一级缓存。 在同一个SqlSession中,执行相同的SQL查询时;第一次会去查询数据库,并写在缓存中,第二次会直接从缓存中取。 当执行SQL时候两次查询中间发生了增删改的操作,则SQLSession的缓存会被清空。 每次查询会先去缓存中找,如果找不到,再去数据库查询,然后把结果写到缓存中。 Mybatis的内部缓存使用一个HashMap,key为hashcode+statementId+sql语句。Value为查询出来的结果集映射成的java对象。 SqlSession执行insert、update、delete等操作commit后会清空该SQLSession缓存。

2)二级缓存 二级缓存是mapper级别的,Mybatis默认是没有开启二级缓存的。 第一次调用mapper下的SQL去查询用户的信息,查询到的信息会存放代该mapper对应的二级缓存区域。 第二次调用namespace下的mapper映射文件中,相同的sql去查询用户信息,会去对应的二级缓存内取结果。

详解请参考:

https://blog.csdn.net/jinhaijing/article/details/84230810

Mybatis一级缓存和二级缓存的区别相关推荐

  1. Mybatis一级缓存与二级缓存的区别你知道吗

    前言 Java面试经常问到Mybatis一级缓存和二级缓存,今天就给大家重点详解Mybatis一级缓存和二级缓存原理与区别. Mybatis缓存 缓存就是内存中的数据,常常来自对数据库查询结果的保存, ...

  2. Mybatis的一级缓存和二级缓存机制原理和区别

    程序中为什么使用缓存? 实际上适用于缓存的数据:经常查询并且不经常改变的,并且的数据的正确与否对最终结果影响不大的.不适用于缓存的数据:经常改变的数据,数据的正确与否对最终 结果影响很大的. Myba ...

  3. mybatis一级缓存和二级缓存的区别?

    mybatis一级缓存和二级缓存? 一级缓存(本地缓存) 1.mybatis一级缓存是SqlSession级别的缓存, 2.在操作数据库的时候需要构造sqlsession对象,在对象中有一个数据结构( ...

  4. 框架源码专题:Mybatis的一级缓存、二级缓存是什么?有什么作用?

    文章目录 1. Mybatis中缓存的作用 2. 一级缓存 3. 二级缓存 4. 一级缓存和二级缓存的区别 5. 通过代码观察Mybatis缓存工作的全过程 1. Mybatis中缓存的作用 首先缓存 ...

  5. Mybatis缓存机制(一级缓存、二级缓存、三级缓存)

    一.含义: 缓存就是内存中的数据,常常来自对数据库查询结果的保存. 使用缓存,我们可以避免频繁与数据库进行交互,从而提高响应速度. Mybatis的缓存分为一级缓存.二级缓存.三级缓存. 一级缓存: ...

  6. mybatis一级缓存和二级缓存使用详解

    文章目录 一.概念说明 1.一级缓存 2.二级缓存 3.比较 二.mybatis缓存的生命周期 三.一级缓存的使用 四.二级缓存的使用 五.自定义二级缓存 六.mybatis缓存.spring缓存和r ...

  7. 面试题总结(mybatis一级缓存及二级缓存、springboot自动装配原理等)

    1.mybatis一级缓存及二级缓存 区别: 一级缓存的作用域是一个sqlsession内: 二级缓存作用域是针对mapper(Namespace)进行缓存: 一级缓存: 在参数和SQL完全一样的情况 ...

  8. Mybatis一级缓存,二级缓存的实现就是这么简单

    介绍 又到了一年面试季,所以打算写一点面试常问的东西,争取说的通俗易懂.面试高级岗,如果你说熟悉Mybatis,下面这些问题基本上都会问 Mybatis插件的实现原理? 如何写一个分页插件? Myba ...

  9. mybatis高级(3)_延迟加载_深度延迟_一级缓存_二级缓存

    设置延迟加载需要在mybatis.xml中设置 注: 侵入式延迟加载为真时是延迟加载 侵入式延迟加载为假时是深度延迟加载 <!-- 延迟加载和深度延迟加载 --><settings& ...

  10. MyBatis框架:延迟加载策策略、一级缓存、二级缓存

    MyBatis框架:延迟加载策略和缓存 Mybatis 延迟加载策略 1.1 何为延迟加载? 1.2 实现需求 1.3 使用association实现延迟加载 1.3.1 账户的持久层DAO接口 1. ...

最新文章

  1. Linux 安装Redis全过程日志
  2. 编程算法 - 切割排序 代码(C)
  3. DropBox 超实用的免费文件网络同步、备份、分享工具
  4. hashmap 遍历_别慌,送你21 个面试官必问HashMap考点
  5. java请假审批怎么实现_java实现请假时间判断
  6. CentOS 7 使用yum安装出现错误
  7. [收藏]数据库备份及恢复
  8. 用python编写决策树算法_详细介绍python实现决策树C4.5算法
  9. JAVA上传文件 DiskFileUpload组件
  10. MDT实现windows系统批量部署
  11. CMYK与RGB颜色区别
  12. GDB X命令详解
  13. 计算机网络嗅探实验,网络嗅探与欺骗实验
  14. DataGear 轻松制作支持图表联动的全国地图、省级地图数据可视化看板
  15. php图文排版样式模版,20款简约样式,多种类型文章的通用模板!
  16. 探讨位操作、算术右移、逻辑右移
  17. Web前端JQuery入门实战案例
  18. cache策略实现的原理(200、304返回码含义)
  19. 网络:access和trunk端口和hybird端口的区别
  20. postgreSQL的外键级联删除

热门文章

  1. gulp-uglify插件最新pump使用教程
  2. 计算机通信与网络 沈金龙 北京邮电大学出版社 笔记,沈阳工业大学2016考研复试大纲:计算机网络...
  3. 困扰我一周左右的semver
  4. 电脑应用图标显示异常
  5. Spring AOP中@Pointcut切入点表达式详解
  6. 关于电脑D盘(E盘)等非系统盘消失不见的解决办法
  7. 【51nod】3058 小明爱集合
  8. 获取 SourceTree License 许可证的步骤
  9. java什么是双亲委派,为什么它可以保证安全?
  10. NLP基础——python的jieba用于词类分割用法总结(1)