mybatis延迟加载默认开启(Mybatis中的延迟加载)
mybatis延迟加载默认开启(Mybatis中的延迟加载)
2024-11-22 08:54:39  作者:失宠于上帝  网址: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-22大鹏柳岩新片没让观众失望 宁浩监制大鹏柳岩主演本周五要上映的新片有13部之多,但能打的貌似一部都没有眼前看来,除非《受益人》这一部影片出长出了一些黑马特点《受益人》这部影片,讲述了一个已婚骗保的穿插这部影片的主演,是大鹏和柳岩柳岩饰演的岳淼淼是一。
  • 二阶行列式如何变成三阶(二阶与三阶行列式)
  • 2024-11-22二阶与三阶行列式二阶与三阶行列式二阶行列式定义:记号图(1)表示代数和a11a22-a12a21,称为二阶列式(1)其中a11a12a21a22叫做行列式的元素,横排叫做行,竖排叫做列,元素aji,其中i,j分别叫元。
  • 水调歌头的诗句经典(管恩锋心中若有乾坤大)
  • 2024-11-22管恩锋心中若有乾坤大浣溪沙-初秋夜细雨夜来洗绿窗,秋风过罅半床凉兰花依旧绽芬芳石下小虫声已竭,檐头宿鸟梦还香蓦然起坐自思量初秋夜夜半微风轻,鸟栖枯叶惊举头看冷月,侧耳听秋声偶有吟诗意,竟无拈酒情几时消息到,白发伴愁生惊秋。
  • 最美古诗词美文欣赏(最美古诗词诗词里的一颗)
  • 2024-11-22最美古诗词诗词里的一颗坠落成河的星辰,在如水的夜色中交织成一曲温柔的旋律,将心扉染醉,轻恋微微发芽,在苦涩的年华里追忆怦然心动时的芳心暗许《蝶恋花·遥夜亭皋闲信步》【南唐】李煜遥夜亭皋闲信步,乍过清明,早觉伤春暮数点雨声风。
  • 四声古诗有哪些(诗词四声基础知识)
  • 2024-11-22诗词四声基础知识一、旧体诗词四声与现代汉语的四声有何区别?古代四声是分为“平、上、去、入”,而现代汉语四声则是“一、二、三、四”,这四个声调有对应,但又不完全对等因为古代四声是基于当时中原发音总结而成,随着元朝兵马南。
  • 辽洽会重点项目(2022辽洽会将于11月17日至20日举办)
  • 2024-11-222022辽洽会将于11月17日至20日举办东北新闻网、北斗融媒讯记者从辽宁省政府新闻办召开的新闻发布会获悉,2022辽宁国际投资贸易洽谈会(以下简称“辽洽会”)将于11月17日至20日在沈阳市举办,会期4天本届辽洽会以“畅通开放通道、共享绿色。
  • 被邻居侵权怎么处理(本想曝光邻居不讲理)
  • 2024-11-22本想曝光邻居不讲理来源:法治日报俗话说,远亲不如近邻,但邻里纠纷也时有发生,各种看似鸡毛蒜皮的小事都有可能成为激化邻里矛盾的导火索有时吵嚷两句,调解一下就过去了,可是一旦发布在社交平台上,事情就变得复杂起来近日,北京市。
  • 汽车爆胎怎么换备胎(具体怎么做)
  • 2024-11-22具体怎么做把车停好,在用千斤顶将车子举升起来之前,先将车子固定好,避免车子被举升后不稳当,砸下来把人给弄伤了放好警示牌,将警示三角牌摆到车后的安全距离内(非常重要),一般高速公路的话要在车后方150米距离摆放设。
  • 类似于流川枫的动漫(喜欢还是讨厌动漫中那些)
  • 2024-11-22喜欢还是讨厌动漫中那些喜欢还是讨厌?动漫中那些“碧池”角色皆川茜《人渣的本愿》花火所在高中的音乐教师,以前曾是麦的家庭教师,是个清新秀丽的大美人天性就喜欢男人,被时间束缚住的日常稍微有些令人窒息,所以小茜有让自己自由的东西。
  • 卫浴间蹲便器(卫浴蹲便器)
  • 2024-11-22卫浴蹲便器不锈钢蹲便器简介不锈钢蹲便器采用304不锈钢通过油压机压铸成盆、板,再通过焊接成形不锈钢蹲便器耐腐蚀性,光亮不退色、不磨损,坚固耐用,清洗方便,安全性较好适用于移动厕所或车载船载厕所,公共场所不锈钢蹲。