【Mybatis】Mybatis延迟加载及其原理和延迟加载配置

本文介绍MyBatis中的延迟加载(懒加载)概念及其配置方法。通过使用代理对象,在访问未加载的数据时触发数据加载,以减少数据库压力。文章详细解释了全局与局部配置的区别,并提供了具体的XML配置示例。

一、概念

MyBatis中的延迟加载,也称为懒加载,是指在进行表的关联查询时,按照设置延迟规则推迟对关联对象的select查询。例如在进行一对多查询的时候,只查询出一方,当程序中需要多方的数据时,mybatis再发出sql语句进行查询,这样子延迟加载就可以的减少数据库压力。MyBatis 的延迟加载只是对关联对象的查询有迟延设置,对于主加载对象都是直接执行查询语句的。

二、原理

MyBatis实现延迟加载的方式是使用代理对象,在访问未加载的数据时触发代理对象的方法,从而进行数据的加载。

三、延迟加载支持的对象

Mybatis 仅支持 association 关联对象和 collection 关联集合对象的延迟加载,association 指的就是一对一,collection 指的就是一对多查询。

association 一对一

collection 一对多

四、 配置延迟加载

1.配置全局延迟加载

	<!-- 在Mybatis的核⼼配置⽂件中可以使⽤setting标签修改全局的加载策略-->
	<settings>
		<!-- 打开延迟加载的开关 -->
		<setting name="lazyLoadingEnabled" value="true"/>
		<!--不是必要的标签   false 深入式延迟加载   true 侵
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱穿背带裤的馫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值