MyBatis中一对一多表查询及一对一/一对多/多对一的意思

  • 一对一

首先大家要明白“一对一”什么意思,我刚开始就是没搞明白“一对一”然后就是各种大神给我讲,我都一脸懵逼。

“一对一”:指的是表关系,举个亲切的列子来讲吧。把一个家庭看做一个数据库,每个成员是一个表,在独生子女家庭这个数据库里面一个母亲只有一个孩子,一个孩子只有一个母亲(亲生的)这就是一对一的关系。一对多的关系更好理解了,一个母亲有不止一个孩子,就是一对多。反过来孩子们有一个母亲就是多对一。

而不是,在操作表的时候一个操作需要一张表,或者多张表(我当时就是这样理解的)

我想碰到一对一多表查询让人困惑的就是resultMap标签里面的东西怎么写了

  • resultMap标签

其实很简单的,就是用association标签

下面贴一个我写的(这是一个三表查询,通过houseid查到butypeid然后再查到typeid,查到typname之最终结果)

这是三个表的表关系

这是resultMap标签里面的代码  

 <resultMap id="showHouseTypeInfoMap" type="House">
        <id column="houseid" property="houseid"/>
        <association property="buildType" javaType="BuildType">
            <id column="butypeid" property="butypeid"/>
            <result column="typeid" property="typeid"/>
            <association  property="type" javaType="Type">
                <id column="typeid" property="typeid"/>
                <result column="typename" property="typename"/>
            </association>

        </association>
    </resultMap>

就是一级一级的往下写,直到最后找到typename

他们的嵌套关系是:(通过houseid查到butypeid然后再查到typeid,查到typname之最终结果)



这就是我今天搞明白的东西,现在一看还真是不一般的简单,真不知道自己当初在迷糊啥,哈哈哈哈哈

有帮助了点赞0,没看明白记得问哈





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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值