<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.chen.dao.StudentMapper">
<select id="getListStudent" resultMap="StudentTeacher2">
select s.id sid,s.name sname,t.id tid,t.name tname
from student s,teacher t
where s.tid = tid
</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="id" column="tid"></result>
<result property="name" column="tname"></result>
</association>
</resultMap>
<!-- <select id="getListStudent" resultMap="studentTeacher">-->
<!-- select * from student;-->
<!-- </select>-->
<!-- <resultMap id="studentTeacher" type="Student">-->
<!-- <result property="id" column="id"></result>-->
<!-- <result property="name" column="name"></result>-->
<!-- <association property="teacher" column="tid" javaType="Teacher" select="getListTeacher"></association>-->
<!-- </resultMap>-->
<!-- <select id="getListTeacher" resultType="Teacher">-->
<!-- select * from teacher;-->
<!-- </select>-->
</mapper>
如果不起别名查询结果就是null(就是sid换成s.id),我个人感觉是就像在sqlyog写语句一样,联表查询需要起一个别名来作为新查出的表的列名。
不知道我的感觉是否正确,欢迎大佬解惑,谢谢。