mybatis的延迟加载

输入图片说明

输入图片说明

OrderMapper.xml文件的配置:

	<!-- 2 延迟加载resultMap的配置 -->
	<resultMap type="com.shi.pojo.Order" id="selectOrderLazyLodingFindUser">
		<!-- 对订单信息进行映射配置 -->
		<id column="id" property="id"/>
		<result column="user_id" property="user_id"/>
		<result column="number" property="number"/>
		<result column="createtime" property="createtime"/>
		<result column="note" property="note"/>
		
		<!-- 3  实现用户信息的延迟加载 
			property:指定哪个属性需要延迟加载
			select:指定延迟加载需要执行的statement的id
			(使用别的映射文件中的statement的id需要指定namespace)
			column:是订单信息中关联查询用户信息的列(就是上面的user_id)
		-->
		<association property="user" select="com.shi.mapper.UserMapper.selectUserByIdOrder" column="user_id">
		</association>
	</resultMap>
	
	<!-- 1 先去查询订单表的信息 -->
	<select id="selectOrderLazyLoding" resultMap="selectOrderLazyLodingFindUser">
		select * from orders
	</select>

UserMapper.xml文件的配置:

<mapper namespace="com.shi.mapper.UserMapper">
	<!-- 通过id查询用户的信息 -->
	<select id="selectUserByIdOrder" parameterType="int" resultType="com.shi.pojo.User">
		select * from user where id=#{user_id}
	</select>
</mapper>

注意:还要在sqlMapperConfig.xml文件中配置;

<!-- 配置延迟加载 -->
	<settings>
		<!-- 大家延迟加载的开关 -->
		<setting name="lazyLoadingEnabled" value="true"/>
		<!-- 取消积极加载 ,改为消极加载 ,即  按需加载-->
		<setting name="aggressiveLazyLoading" value="false"/>
	</settings>

思考:

输入图片说明

转载于:https://my.oschina.net/u/3677987/blog/1535210

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值