mybatis延迟加载默认开启(Mybatis中的延迟加载)
mybatis延迟加载默认开启(Mybatis中的延迟加载)
2024-11-08 04:10:16  作者:失宠于上帝  网址:https://m.xinb2b.cn/sport/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时,第二个设置是没有意义的,这个可以看一下官方文档上写的,看完官方文档就一目了然了


  • 栀子花什么时候剪枝才能年年开花(养栀子花秋季记得剪枝)
  • 2024-11-08养栀子花秋季记得剪枝栀子花叶子浓绿,富有光泽,开花后更是洁白淡雅,芳香怡人每年到了深秋,栀子花的花期结束,也就是谢花以后,为了它能够安全越冬,并在来年长势旺盛,大量开花,这就需要对它进行一次修剪,并给它补足多元素的肥料,。
  • 换向器的构造(换向器的作用是什么)
  • 2024-11-08换向器的作用是什么汽车换向器简介汽车换向器其实就是我们说的转向器,主要是完成由旋转运动到直线运动的一组齿轮机构,同时也是转向系中的减速传动装置目前在运用上较常用的有齿轮齿条式、循环球曲柄指销式、蜗杆曲柄指销式、循环球-。
  • 社保停了一年怎么办(社保交了一年就停交了怎么办)
  • 2024-11-08社保交了一年就停交了怎么办社保交了一年就停交了,如果是在职人员,可以要求公司补缴,公司拒绝补缴可到社保局投诉如果是非在职人员,要快速找到新工作,让新公司缴纳也可以自己本人缴纳找中介机构缴纳,可以找电商平台进行代办。
  • 龙珠贝吉塔人生巅峰时期(龙珠贝吉塔用了11年)
  • 2024-11-08龙珠贝吉塔用了11年龙珠中,对于贝吉塔相信很多朋友都了解过作为赛亚人的王子,得到贝吉塔王极高的厚望,只可惜贝吉塔王还没有见到贝吉塔成长起来就已经死去了只不过,也是因为贝吉塔天生在这样的光环下成长,养成了一身的傲气只要实力。
  • 一万步是几公里
  • 2024-11-08一万步是几公里一万步大慨是六公里,按照部队军人的步幅,一步是75厘米,但是正常人平时走路的步幅大致是60厘米左右,这样算起来,一万步大慨是6公里由于人的高矮不同,步幅也不同,一步的距离受身高,腿长,年龄等各种因素的。
  • 干燥性皮肤适合用什么面膜(肌肤干燥又长痘怎么办)
  • 2024-11-08肌肤干燥又长痘怎么办圣诞节快要到了,相信MM们都希望成为party上的女主角但是干燥的皮肤上有着明显的痘痘问题,这个样子怎么出席派对呢?不用担心,今天,小编就介绍给大家几款最有效的护肤面膜,让每个女生都能美美地赴约一、祛。
  • 谁可以告诉我白话文是什么意思
  • 2024-11-08谁可以告诉我白话文是什么意思白话文又称语体文、俗语,指的是以现代汉语口语为基础,经过加工的书面语它是相对于文言文而说的清末开始的文体改革可以分为“新文体”、“白话文”和“大众语”三个阶段白话文是中国发展的需要,它简练,通俗易懂以。
  • 哪种宠物龟好养又好看(这种宠物龟颜色鲜艳)
  • 2024-11-08这种宠物龟颜色鲜艳今天要说得这个龟其实并不是一个品种,而是人为制作出来彩龟,或者说是漆龟,很多朋友不以为然,不就是在龟甲上用颜料画出图案么,这有什么可说的,古人还用龟甲刻字呢,那么今天我就来带大家了解了解在龟甲上涂颜料。
  • 步步惊心明慧是谁的儿子(贤妻良母的明慧)
  • 2024-11-08贤妻良母的明慧一腔深情无人知,人去方道佳人痴说的就是《步步惊心》中的八福晋,郭络罗·明慧初识明慧,只觉得这个女子坚强的让人心疼,若不是因为指婚给多情的老八,凭嫁给谁不是一生幸福?再回味细品,才发现这样的女子人如其名。
  • 特制拌面酱美味又好吃了解一下(甜面酱不用去买)
  • 2024-11-08甜面酱不用去买嗨@大家好!我是“小猫爱厨房”的小猫,今天又和大家见面了,分享生活、分享美食、分享快乐!今天不做饭也不做菜,今天给大家带来的是一个“甜面酱”的做法,做好的甜面酱不比外边买的差,平常用来拌菜、拌面条还是。
  • 燃气灶用哪个品牌的好(燃气灶哪个牌子好)
  • 2024-11-08燃气灶哪个牌子好燃气灶是每个厨房的必备,挑个好的燃气灶太重要了!选择燃气灶时必然要面临品牌的选择燃气灶那个牌子好呢?1.燃气灶哪个牌子好:美的Midea美的煤气灶是通过向设在灶体及上盖之间的间隙供应自然空气的方法,来。
  • 重庆三日游最佳攻略时间(重庆你好在山城的三天两夜游玩中)
  • 2024-11-08重庆你好在山城的三天两夜游玩中重庆,你好!我在山城的三天两夜游玩中,这里是最难忘的地方!是的,它就是重庆的长江索道,因为以前在不少电影和电视剧里,都曾经看到剧中有男女主角乘坐着索道车渡江而过,画面十分的浪漫!有幸来到山城,这里也一。