Mybatis一对多
方式一:
<!-- 方式一 -->
<select id="getStudent" resultMap="StudentTeacher">
select * from student
</select>
<resultMap id="StudentTeacher" type="Student">
<result property="id" column="id"/>
<result property="name" column="name"/>
<!-- 复杂的属性需要单独处理,对象用 association;集合用:collection -->
<association property="teacher" column="tid" javaType="Teacher" select="getTeacher"/>
</resultMap>
<select id="getTeacher" resultType="Teacher">
select * from teacher where id=#{id}
</select>
方式二:
<!-- 方式二-->
<select id="getStudent2" resultMap="StudentTeacher2">
select s.id sid,s.name sname , t.name tname,t.id tid
from student s,teacher t
where s.tid=t.id
</select>
<resultMap id="StudentTeacher2" type="Student">
<result property="id" column="sid"/>
<result property="name" column="sname"/>
<association property="teacher" javaType="Teacher">
<result property="name" column="tname"/>
<result property="id" column="tid"/>
</association>
</resultMap>
多对一:
方式一:
<select id="getTeacherById" resultMap="TeacherStudent">
select t.id id,t.name tname,s.id sid,s.name sname,s.tid stid
from Teacher t,Student s
where s.tid=t.id and t.id=#{id}
</select>
<resultMap id="TeacherStudent" type="Teacher">
<result property="id" column="tid"/>
<result property="name" column="tname"/>
<!-- 复杂的属性需要单独处理,对象用 association;集合用:collection
javaType=""指定属性的类型
集合中的泛型信息我们使用ofType获取-->
<collection property="students" ofType="Student">
<result property="name" column="sname"/>
<result property="id" column="sid"/>
<result property="tid" column="stid"/>
</collection>
</resultMap>
```方式二
```java
<select id="getTeacherById2" resultMap="TeacherStudent2">
select * from javawork.teacher where id=#{id}
</select>
<resultMap id="TeacherStudent2" type="Teacher">
<result property="id" column="id"/>
<result property="name" column="name"/>
<collection property="students" javaType="ArrayList" ofType="Student" column="id" select="getStudent"/>
</resultMap>
<select id="getStudent" resultType="Student">
select * from javawork.student where tid=#{id}
</select>
总结:
复杂的属性需要单独处理,对象用 association;集合用:collection
javaType=""指定属性的类型
集合中的泛型信息我们使用ofType获取