欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-19 22:53:34
...
  • 一对一

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

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

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

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

  • resultMap标签

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

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

这是三个表的表关系

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

这是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之最终结果)

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


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

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