设置延迟加载需要在mybatis.xml中设置

注:

侵入式延迟加载为真时是延迟加载

侵入式延迟加载为假时是深度延迟加载

<!-- 延迟加载和深度延迟加载 --><settings><!-- 延迟加载 --><setting name="lazyLoadingEnabled" value="true" /><!-- 侵入式延迟加载,默认值是true --><setting name="aggressiveLazyLoading" value="false" /></settings>

一级缓存

注:

1.框架底层使用map集合存储缓存

2.MyBatis查询缓存机制。根据缓存区的作用域与生命周期,可划分为两种:一级缓存和二级缓存.MyBatis查询缓存的作用域是根据映射文件的namespace划分的,相同的namespace的mapper查询数据放在同一个缓存区域。不同namespace下的数据互不干扰。无论是一级缓存还是二级缓存,都是按照namespace进行分别存放的.一级、二级缓存的不同之处在于,SqlSession一旦关闭,则SqlSession中的数据将不存在,即一级缓存就不复存在。而二级缓存的生命周期与真个应用同步,与SqlSession是否关闭无关.换句话说,一级缓存是在同一线程(同一SqlSession)间共享数据,而二级缓存是在不同线程(不同的SqlSession)间共享数据。

3.Mybatis一级缓存默认集成并开启

4.MyBatis的查询依据是:Sql的id+SQL语句

5.执行增删改时会清空缓存,虽然 底层都是update但是,sql标签必须对应操作,不然起到清空缓存的作用

 

二级缓存

1,开启二级缓存3个条件

(1)在mybatis中设置cacheEnabled=true

(2)在Mapper文件中添加<cache/>标签

(3)实体类必须实现serialize接口

转载于:https://www.cnblogs.com/cnsdhzzl/p/6203571.html

mybatis高级(3)_延迟加载_深度延迟_一级缓存_二级缓存相关推荐

  1. java mysql 二级缓存_深入理解MyBatis中的一级缓存与二级缓存

    http://blog.csdn.net/weixin_36380516/article/details/73194758 先说缓存,合理使用缓存是优化中最常见的,将从数据库中查询出来的数据放入缓存中 ...

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

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

  3. MyBatis→优缺点、select延迟加载、接口式MyBatis编程、一级缓存、二级缓存、集成Redis自定义缓存、Log4j

    MyBatis优缺点 select延迟加载 接口式MyBatis编程 一级缓存 一级缓存原理 一级缓存命中原则 一级缓存销毁 一级缓存避免脏读不可重复读 一级缓存与spring@事务 二级缓存 与一级 ...

  4. MyBatis 延迟加载,一级缓存,二级缓存设置

    什么是延迟加载 resultMap中的association和collection标签具有延迟加载的功能. 延迟加载的意思是说,在关联查询时,利用延迟加载,先加载主信息.使用关联信息时再去加载关联信息 ...

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

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

  6. Mybatis 详解--- 一级缓存、二级缓存

    2019独角兽企业重金招聘Python工程师标准>>> Mybatis 为我们提供了一级缓存和二级缓存,可以通过下图来理解: ①.一级缓存是SqlSession级别的缓存.在操作数据 ...

  7. Mybatis 中的一级缓存与二级缓存

    一,Mybatis中为什么要有缓存   缓存的意义是将用户经常查询的数据放入缓存(内存)中去,用户去查询数据的时候就不需要从磁盘(关系型数据库)中查询,直接从缓存中查询,从而提高了查询效率,解决了高并 ...

  8. 浅谈Mybatis的一级缓存和二级缓存

    MyBatis的缓存机制 缓存的引入 当我们大量执行重复的查询SQL语句的时候,会频繁的和数据库进行通信,会增加查询时间等影响用户体验的问题,可以通过缓存,以降低网络流量,使网站加载速度更快. MyB ...

  9. MyBatis】MyBatis一级缓存和二级缓存

    转载自  MyBatis]MyBatis一级缓存和二级缓存 MyBatis自带的缓存有一级缓存和二级缓存 一级缓存 Mybatis的一级缓存是指Session缓存.一级缓存的作用域默认是一个SqlSe ...

  10. Mybatis源码分析之(七)Mybatis一级缓存和二级缓存的实现

    文章目录 一级缓存 二级缓存 总结 对于一名程序员,缓存真的很重要,而且缓存真的是老生常谈的一个话题拉.因为它在我们的开发过程中真的是无处不在.今天LZ带大家来看一下.Mybatis是怎么实现一级缓存 ...

最新文章

  1. 神鬼传奇小技巧:教你如何修改自己想要的时装
  2. Quasar Akka Vertx Norbert 比较
  3. 【Python】Python入门-列表初相识
  4. Jsp用于交换数据的4个map结构
  5. 直播预告丨 统一数据操作平台— CloudQuery 应用指南
  6. Java实现二维码生成
  7. (转)淘淘商城系列——首页轮播图展示
  8. 追加docker已运行容器添加或修改端口映射方法
  9. terminal中常用的rvm指令
  10. [转]JAVA 在main中访问内部类、方法等
  11. [转]软件开发的“三重门”
  12. UniDrop:一种简单而有效的Transformer提升技术
  13. 计算机系统结构的发展现状,浅析计算机系统结构的发展现状和发展方向
  14. 用画图工具制作背景透明的图片总结
  15. 朱嘉明 | 认知未来货币需要新的思想资源
  16. DCDC输出纹波大的原因
  17. 进销存管理轻松实现入库商品分类管理
  18. Python 简单入门指北(试读版)
  19. FFmpeg 拉流,视频源信号不稳定问题,解决思路
  20. UTF8 与 UTF8 +BOM

热门文章

  1. 7号团队-团队任务3:每日例会(2018-12-05)
  2. rsync+shell脚本完成自动化备份
  3. Android 美团Robust热更新 使用入门
  4. 初学css list-style属性
  5. get中添加header
  6. 翘课老黄历——设计文档
  7. 程序员保值的5个秘密
  8. PMCAFF产品经理社区原创专栏,产品圈的干货看这儿就够了
  9. 如何梳理复杂系统的用户需求?
  10. 产品经理面试中那些不忍直视的奇葩题目,面试官你真是够了!