学习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。

浙公网安备 33010602011771号