mybatis延迟加载默认开启(Mybatis中的延迟加载)
mybatis延迟加载默认开启(Mybatis中的延迟加载)
2024-11-08 04:32:23  作者:失宠于上帝  网址:https://m.xinb2b.cn/life/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职业教育这十年【奋进新征程建功新时代·伟大变革】光明日报记者晋浩天这几天,浙江省金华职业技术学院党委书记王振洪的心情很激动作为一名职教战线的老兵,他见证了职业教育法的首次大修:“职业教育总是不被社会认可,但现在首次。
  • 初中文言文一词多义归纳整理(中考文言文一词多义30组)
  • 2024-11-08中考文言文一词多义30组1.【安】(1)尔安敢轻吾射(表反问,怎么)(2)安能辨我是雄雌(表反问,怎么)(3)安求其能千里也(表反问,怎么)(4)今安在(哪里)(5)安得广厦千万间(哪里)(6)汝安知鱼之乐(哪里)(7)衣食。
  • 梦幻西游狮驼岭横扫套子攻略(梦幻西游175级狮驼岭展示)
  • 2024-11-08梦幻西游175级狮驼岭展示在梦幻西游中,有这样一个门派这个门派的玩家,如果想要提高自身的伤害,并使用门派技能的话,要先进行变身是的,这个门派就是狮驼岭今天,就给大家展示位175级狮驼岭玩家!国际惯例,玩家属性图镇楼慈航普度、物。
  • 不要总是来日方长要学会人走茶凉(总以为来日方长)
  • 2024-11-08总以为来日方长有本事的人在写故事,没本事的人在看故事;有本事的人在为自己的成功而忙,没本事的人在为别人的成功而忙;有本事的人把自己变成别人的成本,没本事的人把自己变成别人的利润不要由于别人不能成为你所希望的人而愤怒。
  • 豆腐乳都能怎么吃(对这2类病患而言)
  • 2024-11-08对这2类病患而言我们都知道这个豆腐乳在生活中也是非常常见的,很多人都知道,闻起来特别的臭,其实吃起来的话也是非常香的,那么豆腐乳吃的时候也是特别的下饭对两类病人来说却是一口都不肯吃的,我们就应该来看看哪些人是不可以吃。
  • 陌陌上女的说刚来这个地方(我在陌陌上约了个女主播)
  • 2024-11-08我在陌陌上约了个女主播陌陌要如何拯救自己的信仰张韶涵、毛不易、陶喆、杨坤……1月7日,一年一度的陌陌年度盛典在深圳举行,40位陌陌人气主播与明星大咖同台演出,现场更是颁出了诸多直播奖项,频频刷屏与此相呼应,陌陌2018年Q。
  • 镰刀收割过程(你知道一把锋利的镰刀怎么打制出来的吗)
  • 2024-11-08你知道一把锋利的镰刀怎么打制出来的吗乡谚说:“世上有三苦,打铁撑船磨豆腐”,打铁位居三苦之首马上就要到麦收季节了,你知道吗?一把镰刀的制作包含了不下五六道工序,每道工序都需要打铁师傅的技巧、力量、耐心梁永刚|文打铁,百炼才能成钢打铁是种。
  • 梦见整理钱是什么征兆(梦见整理钱的寓意)
  • 2024-11-08梦见整理钱的寓意梦见整理钱,因得到天时地利,不管是再大的困难及险阻,都能一一处理,势如破竹,若再得到在位者的赏识,则会有大成功之象梦见数钱,预意你将获得成功未婚男女做这样的梦,还预示感情进展顺利,有望结婚已婚男女梦见。
  • 儿子被拐父母双双寻短见(长沙父母苦寻33年一家人终重聚)
  • 2024-11-08长沙父母苦寻33年一家人终重聚潮湿闷热的7月,长沙市芙蓉区东驿竹园小区内的一栋居民楼前,因为一场认亲仪式突然热闹了起来志愿者和居民拉着欢迎横幅站立道路两旁,高大的彩色拱门下挤满了前来贺喜的邻居“33年没有见面,我们准备了很多最想给。