mybatis延迟加载默认开启(Mybatis中的延迟加载)
mybatis延迟加载默认开启(Mybatis中的延迟加载)
2024-11-21 10:50:02  作者:失宠于上帝  网址:https://m.xinb2b.cn/know/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-22念念不忘家乡风土人情文|小石头父母离不开故土,哪怕是短暂的别离,都让他们念念不忘北漂的我扎根于遥远的他乡,娶妻生子,异乡早已融入血液之中,他乡成了我的第二故乡因孩子的缘故,父母不得不背井离乡来照看幼小的孙儿,言谈之中时不。
  • 三里清风三里路全诗(三里清风三里路的意思)
  • 2024-11-22三里清风三里路的意思“三里清风三里路”全诗为:三里清风三里路,步步风里步步你,三里清风三里路,步步清风再无你这句诗的意思是:走了三里的路程,伴随着三里路的清风,每走的一步路都有清风相随,但是没有你的陪伴表达了“曾经有你陪。
  • 41个人打太极排列的队形(风涌云动集体太极)
  • 2024-11-22风涌云动集体太极宝鸡市第三届“弓长杯”暨树德榕茂武术精英大赛隆重举行心无芥蒂,真善美信,追求上品,圆融身体,激扬慧性,美美人际,人类健康,社会进步,是太极文化的光辉在这个光辉的照耀下,以“挽弓当挽强,开弓莫回头”为寓。
  • 撞库详解(揭撞库打码灰色产业利益链)
  • 2024-11-22揭撞库打码灰色产业利益链叶某某编写了用于批量登录网站账号、密码的软件供他人使用,并收取服务费用张某某为组织多名“码工”协助叶某某在批量登录账号密码时,对图片验证码进行识别(俗称“打码”),并从中赚取好处费谭某某下载使用了这款。
  • 肉丸子怎么做才会软滑(过年做肉丸子牢记7诀窍)
  • 2024-11-22过年做肉丸子牢记7诀窍导语:过年做肉丸子,牢记7诀窍,丸子爽口弹牙,个个弹力十足,超香!快要过年了,相信这些天大家都致力于办年货每到腊月,我家也是喜欢提前准备好年货提起年货,其实我家更热衷于自己亲手制作的,比如说肉丸子每年。
  • 保定旅游必去的景点(保定最受欢迎的十大旅游景点)
  • 2024-11-22保定最受欢迎的十大旅游景点保定是京津冀地区中心城市之一是一座具有2300多年历史的中国历史文化名城满城有着悠久的历史和灿烂的文化古朴风情和湖光山色融为一体也是中国优秀的旅游城市那么保定好玩的景点有哪些呢?下面一起来看看吧白石山。
  • 这次我不会再输了励志语录(我可以不用但不能没有)
  • 2024-11-22我可以不用但不能没有买车后悔死了,买房后肠子都悔青了……大家是否经常在网上看到这类的视频,下面就来谈谈我自己的经历和感受我是一个打工族,每个月也就七千左右的工资,每次发了工资后都是该吃的吃,该玩的玩,存款寥寥无几,这几年。
  • 孕期总爱睡觉会不会影响胎儿发育(孕期不重视睡觉这件事)
  • 2024-11-22孕期不重视睡觉这件事孕妈妈,你还在熬夜吗?怀孕之前,有些孕妈妈就已经有熬夜的习惯,怀孕之后,也没有过多注意,还是坚持熬夜,如果说的就是你,那你一定要赶紧养成早睡习惯哦孕期熬夜的危害,你该知晓,因为你不是一个人在熬夜,你还。
  • iphone官方翻新机鉴别(网友买到iPhone翻新机)
  • 2024-11-22网友买到iPhone翻新机都希望自己买的iPhone是原装正品,但iPhone的水很深,买全新机怕遇到后封机、监管机买二手机怕买到翻新机、组装机、炸弹机网友在某平台网购了一台iPhoneXR,卖家号称该机是原装库存机但真的如此。