1. 程式人生 > 實用技巧 >學習Mybatis中的一對多表關聯

學習Mybatis中的一對多表關聯

一、建立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。