學習Mybatis中的一對多表關聯
阿新 • • 發佈:2020-11-12
一、建立Person_class表。
新增屬性classid和classname;
設定外來鍵。
二、建立實體類:
package org.ruangong.entity; import java.util.List; public class PersonClass { private int classid; private String classname; List<Person> person; public int getClassid() { return classid; } public void setClassid(int classid) { this.classid = classid; } public String getClassname() { return classname; } @Override public String toString() { return "PersonClass [classid=" + classid + ", classname=" + classname + ", person=" + person + "]"; } public void setClassname(String classname) { this.classname = classname; } }
在personMapper.xml中新增:
<!-- 一對多關聯查詢 --> <select id="queryPerson_cardId3" resultMap="class_persons_map" parameterType="int"> select C.*,P.* from person2 P inner join person_class C on C.classid = P.classid where C.classid = #{classid} </select> <resultMap type="PersonClass" id="class_persons_map"> <id property="classid" column="classid"/> <result property="classname" column="classname"/> <!-- 一對多用collection --> <collection property="person" ofType="Person"> <id property="id" column="id"/> <result property="name" column="name"/> <result property="age" column="age"/> <result property="persex" column="sex"/> </collection> </resultMap>
在resultMap標籤中,若為一對多表關聯,那麼在這裡必須使用collection標籤,若為一對一就是用association標籤。
然後要注意若返回值為集合元素,那麼必須使用ofType,如果是物件就是用javaType。