mybaties 一对多查询

实际业务中经常会面对一对多查询,但是我一直不会,知道看到了 macrozheng的mall项目才知道。果然还是应该多看别人的源码以此来开阔视野。

第一步,在xml中创建一个返回类型,返回类型中有3中表达方式对应三种情况

    <resultMap 
            id="updateInfoMap" 
            type="返回的java类型" 
            extends="返回java类型的继承类">
        
        <result column="自定义查询结果行" property="自定义查询结果的属性名" />
        <collection 
            property="一对多中的多,所对应的java中的属性名" 
            columnPrefix="自定义查询列的前缀_" 
            resultMap="属性所对应的mapper所在java路径.xml类型文件对应中resultMap的id">
        </collection>

       <collection 
            property="一对多中的多,所对应的java中的属性名" 
            column="{ex_Id=id}" 
            select="当前mapper中所对应的子查询id"/>
    </resultMap>

第二步,创建返回类型中的查询语句

    <select 
        id="第一步中返回类型对应的id"
        resultMap="返回类型所对应的mapper的java.返回类型所对应的xml中的resultMap">
        select * from a where a.id=#{ex_Id}
    </select>

第三步,新建查询语句

 <!-- 自定义分页 -->
    <select id="getInfoExById"  resultMap="updateInfoMap">
     
        a.*
        b.id 自定义查询列的前缀_id
        FROM t_a a
        LEFT JOIN t_b  b on b.id = a.b_id 
 
        WHERE t.id=#{id}




    </select>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

孤独白鲸

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

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

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

打赏作者

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

抵扣说明:

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

余额充值