使用resultMap中的association,collection实现延迟加载

本文介绍了MyBatis中的延迟加载概念,通过association配置实现订单表与用户信息表的关联查询。首先解释了延迟加载的含义,即按需查询。然后详细说明了如何通过SQL子查询在orders表中获取用户信息,并在ordersMapper.xml中配置相关查询方法,同时在接口中定义相应的方法。最后提到了在SqlMapConfig.xml中设置全局环境以启用延迟加载,并进行了测试验证。
摘要由CSDN通过智能技术生成

一、延迟加载

延迟加载:通俗来讲,就是按需查询;当有一个业务需要查询多个表时,可以先进行单表的查询,然后根据需求去查询关联表的信息,把对关联表的查询就称作为延迟加载。

二、使用association简单的实现延迟加载功能(collection同association)

1、目标:查询一个订单表orders(id,user_id,number,createtime,note)以及它关联的用户信息表user(id,username,birthday,sex,address)

SQL语句:

select orders.*,
            (select username from user where orders_id=user.id)username,
            (select sex from user where orders_id=user.id)sex,
            (select address from user where orders_id=user.id)address
            from orders

思路:首先查询单表,也就是orders表,然后根据需求去查询用户表

1、配置ordersMapper.xml文件

 

因为,我的findUserById不在ordersMapperxml中,所以我的select中加了namespace,即:com.mybatis.map

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值