mybatis 多对一处理

2.方法一


 <!--根据tid找老师-->
    <select id="getStudentList" resultMap="StudentTeacher">
        select *from student
    </select>

    <resultMap id="StudentTeacher" type="student">
        <!--对象-->
        <!--property 自己的属性 column 表中属性 前面两个字段对应的属性-->
        <!--第一个是自己的 第二个是映射另一张表的-->
        <!--select 另一张表的SQL语句-->
        <association property="teacher" column="tid" javaType="teacher" select="getTeacher"></association>
    </resultMap>
    
    <select id="getTeacher" resultType="teacher">
        select *from teacher where id=#{id}
    </select>

3方法二

  <!--按照结果潜嵌套处理-->
    <!--将想要查询的字段起别名-->
    <!--property自己有的 column数据库的 别名也算数据库-->
    <select id="getStudentList2" resultMap="StudentTeacher2">
    select s.id sid,s.name sname,t.name tname
    from mybatis.student s,mybatis.teacher t
    where s.tid=t.id
    </select>

    <resultMap id="StudentTeacher2" type="student">

        <result property="id" column="sid"></result>
        <result property="name" column="sname"></result>
        <association property="teacher" javaType="teacher">
        <result property="name" column="tname"></result>
        </association>

    </resultMap>