mybatis学习 十四 resultMap标签 一对一(联合查询)

Posted 阿瞒123

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis学习 十四 resultMap标签 一对一(联合查询)相关的知识,希望对你有一定的参考价值。

1.使用 resultMap 实现关联单个对象(联合查询方式)

<resultMap type="Student" id="stuMap1">
    <id column="sid" property="id"/>
    <result column="sname" property="name"/>
    <result column="age" property="age"/>
    <result column="tid" property="tid"/>
    <association property="teacher" javaType="Teacher" >

        <id column="tid" property="id"/>
        <result column="tname" property="name"/>
    </association>
</resultMap>

<select id="selAll1" resultMap="stuMap1">
    select s.id sid,s.name sname,age age,t.id tid,t.name tname
     
    FROM student s left outer join teacher t on s.tid=t.id
</select>    

注意id为selAll1的select标签与下面id为selAll的select标签的区别

      <resultMap type="student" id="stuMap">
              <id column="id" property="id"/>
              <result column="name" property="name"/>
              <result column="age" property="age"/>
              <result column="tid" property="tid"/>
              <association property="teacher" javaType="Teacher" column="tid" select="com.xxx.mapper.TeacherMapper.selById" >
              </association>
          </resultMap>
          <select id="selAll" resultMap="stuMap">
              select * from student
          </select>

 

第一中是联合查询,第二中不是,是先查询每一个学生,然后再根据学生的tid去查询老师,第二种实现效率低

以上是关于mybatis学习 十四 resultMap标签 一对一(联合查询)的主要内容,如果未能解决你的问题,请参考以下文章

mybatis学习 十三 resultMap标签 一对一

MyBatis学习笔记 —— 自定义映射resultMap

MyBatis学习 之 二SQL语句映射文件resultMap

MyBatis基础入门《十五》ResultMap子元素(collection)

mybatis resultmap标签type属性什么意思

mybatis ResultMap详解