mybatis延迟加载默认开启(Mybatis中的延迟加载)
mybatis延迟加载默认开启(Mybatis中的延迟加载)
2024-11-25 04:14:54  作者:失宠于上帝  网址:https://m.xinb2b.cn/tech/xep505671.html

延迟加载又叫懒加载,也叫按需加载。也就是说先加载主信息,在需要的时候,再去加载从信息。

在Mybatis中,resultMap标签 的association标签和collection标签具有延迟加载的功能。

1、拷贝jar包

延迟加载中查询出来的是一个代理对象,不是真正的对象本身,可参考hibernate中的load方法,利用log4j将日志信息打印在控制台可以很明确的看到,所以在使用延迟加载时,需要用到cglib包。

<dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> <version>3.2.6</version></dependency>

2、配置全局设置

<!-- 全局设置 -->

<settings>

<!-- 打开延迟加载的开关,默认为false,即非延迟加载 --> <setting name="lazyLoadingEnabled" value="true"/> <!-- 将积极加载改为消极加载 --> <setting name="aggressiveLazyLoading" value="true"/> <!--两个合在一起配置就是,消极的延迟加载-->

</settings>

官方对这两个属性的解释是:

lazyLoadingEnabled 全局启用或禁用延迟加载。当禁用时,所有关联对象都会即时加载。(是否延迟加载当前对象的关联对象)

aggressiveLazyLoading 当启用时,有延迟加载属性的对象在被调用时将会完全加载任意属性。否则,每种属性将会按需要加载。(是否延迟加载当前对象属性的关联对象)

延迟加载会生成代理对象

可以看出,当什么都不配置时,默认为用一个从连接池中取得的连接完成两个sql语句的查询,即非延迟,积极的查询

(2)配置 <setting name="lazyLoadingEnabled" value="true" />

aggressiveLazyLoading的默认值为false 即只配 lazyLoadingEnabled为true或者同时配置两个为一true一false的结果相同

只要结果映射中配置了association

则执行懒加载特性:不查询author的属性,则不执行子查询。

当只有测试中的第一条输出语句执行时结果如下图:


可以看到此时是懒加载。

当测试中的两条输出语句都执行时结果如下图:


可以看出,此时为非积极的延迟加载,只有在需要查询author时才会执行查询author的sql语句。

(2)配置 <setting name="lazyLoadingEnabled" value="true" />且

<setting name="aggressiveLazyLoading" value="true"/> 此时为积极的延迟加载

当只有测试中的第一条输出语句执行时结果如下图:


可以看出,此时的结果为虽然只需要blog的id,但是author依旧被查询,而且用到的是两个连接查询。

当测试中的两条输出语句都执行时结果如下图:


可以看到,此时两个输出语句打印的结果是连接在一块的,也就是说在打印author信息之前,author已经被查询出来,而不是像上面非积极的延迟加载那样,用到author时才执行sql语句。

如果第一个设置的不是true时,第二个设置是没有意义的,这个可以看一下官方文档上写的,看完官方文档就一目了然了


  • 两分钟带你感受杨幂演技逆袭(分饰3重性格荣获国际影后)
  • 2024-11-25分饰3重性格荣获国际影后“华语科幻电影”目前太少精品了,近年来似乎成为了业内人士与观众的一种共识当小编近几天回看《逆时营救》时,剧中抛出平行时空的梗,在一个紧张感十足的故事里,用两个小时让你我有了身临其境的代入感,算得上是华。
  • 老年人学手机第008讲(老年人学手机教程)
  • 2024-11-25老年人学手机教程目录老年人学手机(181)本地音乐设置成手机铃声的实例老年人学手机(182)快速制作自己的小视频老年人学手机(183)你的文字输入界面好看又舒适吗?老年人学手机(184)把视频里的音频分离出来老年人学。
  • 黄条鰤刺身怎么做(顶级刺身泯然不识舌尖味)
  • 2024-11-25顶级刺身泯然不识舌尖味“泯然不识舌尖味,直把鰤鰤作金枪”今天在海鲜批发市场看到此鱼,心内不觉一喜:“什么价?”“金枪鱼吗?”“金…金枪鱼?!”愕然……鰤鱼,或称五条鰤(学名:Seriolaquinqueradiata),英。
  • 海带丝怎么凉拌好吃(海带丝凉拌简单美味做法)
  • 2024-11-25海带丝凉拌简单美味做法原料:干海带、胡萝卜丝、尖椒丝、香菜末、蒜泥、花椒油、香油、盐、糖、醋准备好干海带,抖落掉浮尘;把干海带放蒸锅里蒸30-40分钟;取出后用清水浸泡2-3小时;洗净后切丝;沸水加适量醋、烫煮海带丝5分钟。
  • backtrack是啥意思(你被人说过backseatdriver)
  • 2024-11-25你被人说过backseatdriver话说每次大汪开车出去的时候,咔咔坐在车里总是呼来唤去的,你慢一点,你靠左点,你靠右点,那边有狗,这边有猪……总之,大汪每次都被使唤得狗头都要炸了说多了都是泪,看来是时候让咔咔去驾校接受魔鬼训练了,驾校。
  • 焦点访谈新时代新征程(百年奋斗启新程)
  • 2024-11-25百年奋斗启新程央视网消息(焦点访谈):中国共产党是一个高度重视总结历史经验也善于总结历史经验的马克思主义政党每到重要历史时刻和重大历史关头,党都要回顾历史、总结经验,从历史中汲取继续前进的智慧和力量党的十九届六中全。
  • 稚晖君离开华为去哪了(稚晖君官宣离开华为创业)
  • 2024-11-25稚晖君官宣离开华为创业Pine发自凹非寺量子位|公众号QbitAI前几天热议的离职创业传闻,稚晖君出面回应了:传言属实,已离开华为,准备创业至于大家备受关注的B站up主身份,稚晖君称不会全职做,但会填好之前自己挖的坑,依旧。
  • 客厅有没有必要做吊顶(为什么客厅做吊顶的家庭)
  • 2024-11-25为什么客厅做吊顶的家庭“客厅吊顶一点用也没有,只剩费钱了”“客厅千万别吊顶,积灰”“客厅吊顶也就刚住进去那两个月看着好看,图个新鲜,时间久了积灰不说,还压抑”……装修时常会听到客厅做了吊顶的家庭给出类似以上的建议,那到底客。
  • 哪个平台买平板更便宜又好用(讨好妹子送啥最好)
  • 2024-11-25讨好妹子送啥最好还在为不知道送什么求婚而苦恼么?还在为不知道如何让你心爱的他或她心满意足而烦恼么?现在是信息时代了好么,还在送围脖手套或是化妆品杯子之类的你就太low了好不好,要送就送她科技的产物,为了你心爱的他或她。
  • 我的世界什么村民要铁换绿宝石(和村民交易要当心)
  • 2024-11-25和村民交易要当心Mc我的世界中,除了可爱的动物和可怕的怪物以外,还有一种存在,那就是类似于NPC但又不完全是NPC的村民们它们有自己的家园,还能种地、养殖什么的,我的世界手游版本中的村庄更是有了一个特殊的变化,这让村。
  • 长途摩托车维护保养(我的买摩托车之路和摩托车自行保养)
  • 2024-11-25我的买摩托车之路和摩托车自行保养一、选车之路在北京这样的大城市,通勤是上班族每天需要面对的问题,就是堵堵堵…限限限…首先强调一下我应该不属于对骑行有情怀的哪种人,买摩托车主要是为了通勤上下班,因为家住址离单位比较远(大约38KM),。
  • 手串有什么讲究(手串多少颗有讲究吗)
  • 2024-11-25手串多少颗有讲究吗十三颗佛珠手串也是非常常见的一种,一般是规格1.8cm的手串,那么为什么是十三颗呢?十三颗有什么特殊含义吗?一般认为十三颗的佛珠手串表征佛教的十三力佛教认为,西方净土的菩萨具足十三力,因此能自利利他,。