节省开销-Mybatis懒加载

同学你知道什么是量子力学吗?

今天来了个骚操作,同学们知道量子力学嘛,知道什么是量子的叠加态嘛,听说过什么是双缝干涉实验嘛。
话说有一个老外叫托马斯·杨,他在研究室作了一个实验,在一侧用一个点光源向一个墙上发射光束墙上有两个缝,在墙后面有一个屏风,屏风上出现了波纹状。
在这里插入图片描述
我们知道光具有波粒二象性,于是这个老外继续探索,如果一次我只发射一个光子那么他从哪一侧的缝隙过去呢。于是他就在这个缝隙的前面方了一个观测装置,用来观察光子的路径,结果发现一个确定的光子只能通过其中一侧缝隙,而墙后面的屏风也不再出现之前观察到的波纹。
这就引出了量子的叠加态,而放置观察装置的行为就叫做量子观测,在量子观测之前光子处于从上面和从下面传播的叠加态,而量子观测之后叠加态坍缩成固定的状态也就看不见光的波纹了。
我听完了这个故事之后,一拍大腿,这不就是懒加载嘛!!

别干后端,全是知识,学去吧你!!!

我们开始正式介绍懒加载,同学,假如你一个人在外面工作,自己租了一个房子,有多少人早上会叠被的。我认为应该很少,因为即便是家里面稍微乱一点,也不耽误我们打扮的漂漂亮亮的去上班。在没有人来家里做客的情况下,一天打扫一次和一个月打扫一次不会有什么区别(从表现上来看)。等有人来家里做客的时候再打扫就可以了。
这叫什么,这就叫懒!!!
所谓懒加载的含义也正是如此,在我们进行关联查询的时候,不必浪费资源加载关联表。等我们用的上的时候再把他查询出来也来得及,万一真的用不上了,那岂不是就可以偷懒了。

如何在Mybatis实现懒加载

首先我们要在Mybatis 的配置文件里把lazyLoadingEnabled设置为true
然后在Mapper.xml里要这么写

<resultMap type="Bound" id="boundMap">
	<id property="id" column="id"/>
	<result property="name" column="name"/>
	<association property="dept" javaType="Dept" column="dept_id" select="findDeptLazy" fetchType="lazy" >
		<id property="id" column="id"/>
		<result property="deptName" column="dept_name"/>
	</association>
</resultMap>
<select id="findUserDeptLazy" parameterType="int" resultMap="userMap">
	SELECT id ,name,sex,age,oper,dept_id
		FROM t_user 
		WHERE id = #{id}
</select>  

只要注意要在Mybatis设置里开启允许懒加载,并且fetchType设置为lazy。基本就可以了。

故事的来源

今天中文跟同事侃大山的时候,提到了量子力学,什么薛定谔呀,双缝干涉实验呀。我忽然就想起了这部分内容,顺便记录下来。
在这里插入图片描述

这哪是Java呀,都是学问呀!!!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值