mybatis懒加载原理(mybatis懒加载和延迟加载)

延迟加载又叫懒加载,也叫按需加载。也就是说先加载主信息,在需要的时候,再去加载从信息。 在mybatis中,resultMap标签的association标签和collection标签具有延迟加载的功能。 1、拷贝jar包 延迟加载中查询出来的是一个代理对象,不是真正的对象本身,可参考hibernate中的load方法,利用log4j将日志信息打印在控制台可以很明确的看到,所以在使用延迟加载时,需…

延迟加载又叫懒加载,也叫按需加载。换句话说先加载主信息,在必须的情况下,再去加载从信息。

在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\"/>
 <!--2个合在一起配备便是,消沉的延迟加载-->

</settings>

官方网对这两个特性的表述是:

lazyLoadingEnabled 全局性开启或禁止使用延迟加载。当禁用时,全部关系目标都是会及时加载。(是不是延迟加载现阶段目标的关系目标)

aggressiveLazyLoading 当开启时,有延迟加载特性的目标在被启用时可能彻底加载随意特性。不然,每一种特性可能按必须加载。(是不是延迟加载现阶段目标特性的关系目标)

延迟加载会转化成代理目标

3、检测

/**

* 测试延迟加载

*/

@Test
public void testLazyLoading(){
 SqlSession session = MyBatisUtil.getSqlSession();
 BlogMapper blogImpl = session.getMapper(BlogMapper.class);
 Blog blog = blogImpl.selectById(1);
 session.close();
 //默认设置是积极主动加载的,必须在Config环境变量的全局性中配备
 System.out.println(blog.getId());
//System.out.println(blog.getAuthor());

}

依据MyBatis官方网文本文档中给定的实例,Blog类中关系了Author,本次检测,根据官方网文本文档中的实例

(1)任何东西都不配备,且只打印出blog的id

Mybatis中的延迟加载

可以看得出,当任何东西都不配备时,默认设置为用一个从数据库连接池中得到的联接进行2个sql语句的查看,即非延迟,积极主动的查看

(2)配备 <setting name=”lazyLoadingEnabled” value=”true” />

aggressiveLazyLoading的初始值为false 即只配 lazyLoadingEnabled为true或是与此同时配备
2个为一true一false的效果同样 

只需結果投射中配备了association

则实行懒加载特点:不查看author的特性,则不实行子查询。

当仅有检测中的第一条輸出句子实行时結果如下图:

Mybatis中的延迟加载

能够看见这时是懒加载。

当检测中的两根輸出句子都实行时結果如下图:

Mybatis中的延迟加载

可以看得出,这时为非积极主动的延迟加载,仅有在必须查看author时才会执行查询author的sql语句。

(2)配备 <setting name=”lazyLoadingEnabled” value=”true” />且

 <setting name=\"aggressiveLazyLoading\" value=\"true\"/> 这时为充分的延迟加载

当仅有检测中的第一条輸出句子实行时結果如下图:

Mybatis中的延迟加载

可以看得出,这时的效果为尽管只必须blog的id,可是author依然被查看,并且使用的是2个连接查询。

当检测中的两根輸出句子都实行时結果如下图:

Mybatis中的延迟加载

能够看见,这时2个輸出句子打印出的結果是联接在一块的,换句话说在打印出author信息以前,author早已被查看出去,而不是像上边非积极主动的延迟加载那般,使用author时才实行sql语句。

假如第一个设定的并不是true时,第二个设定是没有意义的,这一可以看一下官方网文本文档上写的,看了官方网文本文档就一目了然了

Mybatis中的延迟加载

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年5月3日 上午10:28
下一篇 2022年5月3日 上午11:04

相关推荐

  • 华为手机删掉的照片怎么恢复,一招立马恢复删除照片

    相信大家都知道,近几年华为手机也是非常的给力,上升的速度也是非常快,越来越多的人使用,现在华为手机的拍照也是非常强大,很多人不管走到哪里都会记录自己生活的点点滴滴,但是照片多了就非常占内存,很多人都会选择删除一些重复的照片,可是很容易将自己喜欢的照片给误删了。今天就给大家分享几个恢复的方法哟。 方法一 现在很多手机在相册里都有增加一个“最近删除”的功能,我们可以在“最近删除”中找到被自己误删的照片…

    2022年7月13日
    840
  • 什么是微博营销,微博营销方式及特点

    在绝大多数人眼里,都说新浪微博不行了,都在急于转战到微信公众平台或QQ公众号,其实并不是新浪不行了,只是进入到了一个平静期,每天在新浪微博上活跃的依然很“恐怖”!下面我分享几个新浪微博的小技巧给大家,希望对打击起到抛砖引玉的作用! 根据相关数据表明,截止到目前为止,新浪微博的注册人数早已经过亿,每天活跃的用户上千万上亿是很正常的事情,消息更新数量之多令人咋舌。新浪微博的火热预示“移动互联网的SNS…

    2022年7月9日
    620
  • 京东二手拍拍可靠吗,盘点拍拍二手平台的利与弊

    日前,京东618电商节逐渐来到了高潮,京东在推出优惠的同时,也不断”别出心裁“推出新花样,让用户感受不一样的购物节。在此期间,京东旗下的拍拍二手就带来”以旧换新”的全新玩法。对于消费者接触并不多的二手交易平台,拍拍二手究竟是何方“神圣”? 据悉,京东在多类产品购物页面上上新了“以旧换新”功能,其被称为是拍拍二手打造的创新交易模式,借助京东金融小白信用体系提供信用回收服务,旧机直接为新机抵现,为用户…

    2022年8月9日
    830
  • aso关键词优化工具有哪些,aso关键词优化教程

    【ASO优化工具】针对苹果&安卓应用商店榜单、热搜、搜索等数据进行分析的ASO优化工具导航 =国内ASO工具=<ASO100><CQASO><德普优化><ASO114><酷传><爱盈利><应用雷达> =国内ASO工具=<蝉大师><AppDuu><ASOU><AppB…

    2022年8月6日
    510
  • 蜈支洲岛旅游攻略一日游的费用(蜈支洲岛门票优惠政策)

    蜈支洲岛位于三亚市北部的海棠湾内。距三亚市中心30公里、三亚凤凰国际机场38公里,紧邻海南东线高速公路,交通便利快捷。来三亚旅游的人基本上不会去市中心,市中心没景点嘛,也不可能坐公交,刚坐完飞机,就和人挤公交,不是很容易适应的事,出租车也不方便,打不到就完蛋了,所以上飞机之前,先联系个租车公司,租好车,他们一般会把车开到机场的,这样你下飞机就有车了。 上岛要坐渡轮,排队时间比较长,最好早点来。淡季…

    2022年10月21日
    420
  • 美国理工大学排名,理工大学留学申请条件

    美国加州理工大学一般是指加州理工学院,在2017-18年泰晤士高等教育世界大学排名:世界第3名;声誉排名:世界第10名。2017-18年世界大学学术排名(ARWU):世界第9名。2017-18年usnews世界大学排名(US News):世界第6名;本科项目排名(Best Colleges),第10名。立思辰留学360介绍,2017年8月,《福布斯》公布2017年美国大学排行榜,加州理工大学排名第…

    2022年10月4日
    420
  • 如何进行网络营销,十大常用的网络营销方法分享

    1:搜索引擎营销(SEM) 搜索引擎营销(SEM)包含7种推广形式:搜索引擎登陆、固定排名、网络实名、竞价排名、关键词广告、有效通话收费和搜索引擎优化(SEO)。 2:E-mail营销 E-mail营销特点是范围广、效率高、成本低、针对性强、反馈率高、应用范围广、而且操作简单,所以E-mail营销是经久不衰的营销方式。但是垃圾邮件很容易引起客户反感,进行E-mail营销时需要慎重考虑,选好客户人群…

    2022年7月9日
    530
  • 微信怎么删除好友,原来方法这么简单

    微信好友主要是用来聊天互动的,但是我们手机里有不少好友都是僵尸友,不聊天也不点赞,还不如直接删掉。微信怎么删除好友快?跟着小编一起了解。 微信怎么删除好友快 打开微信,找到菜单“我”中的“设置”; 点击“设置”,页面跳转后找到“隐私”按钮并点击; 找到找到“不常联系的朋友”并点击; 根据选择条件筛选好友,如选择“半年内无单聊”的微信好友; 点击下一步,选择并点击位于手机右上角的“多选”; 这样,“…

    2022年9月9日
    550
  • 苹果手机怎么同步通讯录,带你了解更多苹果功能技巧

    今天,我们来讲讲两部iPhone之间的通讯录(联系人)如何同步,之所以只讲iPhone不讲安卓,是因为安卓的手机工具比较多且简单,下任何一个手机助手都可以轻松完成安卓手机上几乎所有数据的转移、同步了,iPhone则由于苹果公司没有开放权限给第三方,所以转移、备份数据相对比较复杂,大多玩家都弄不来。 有这个需求的网友欢迎往下看。 方法1:使用iTunes软件 优点:可以备份iPhone上所有数据并且…

    2022年7月8日
    620
  • 关键词密度计算方法有哪些,网页关键词密度最佳值

    所谓关键词密度,其实与关键词频率实质上是同一个概念,用来量度关键词在网页上出现的总次数与其他文字的比例,一般用百分比表示。例如关键词为3个文字,一种出现了10次,而整个页面的文字有3000个,那么关键词的密度的计算为:关键词密度=3*10/1000=3%,关键词出现的越频繁,密度就越大。 关键词密度对网站来说十分重要,网站关键词对SEO优化来说十分重要,如果在关键词布局方面不够仔细的话很有可能会因…

    2022年8月31日
    500

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信