此仅为个人笔记,若有不周之处,万望指正,不胜感激。
此处多对一查询还是使用一对多的使用的表,点击打开链接。表中外键始终在多的那方,若外键在一的那方就需要创建更多的列,会生成大量冗余数据,过于浪费资源,且不易管理。数据库的表从创建的时候便已经确定了以最好的方式创建,如果因为查询方式的变动而改动表,那只能说明表创建的就不够合理。
public class Country {
private Integer cid;
private String cname;
//为节省篇幅,自行补全get,set及toString方法
}
public class Minister {
private Integer mid;
private String mname;
private Country country;
//为节省篇幅,自行补全get,set及toString方法
}
此为以一对多的POJO略作修改而成。
<mapper namespace="com.bjpowernode.dao.IMinisterDao">
<resultMap type="com.bjpowernode.beans.Minister" id="ministerMapper">
<id column="mid" property="mid"/>
<result column="mname" property="mname"/>
<association property="country" javaType="com.bjpowernode.beans.Country">
<id column="cid" property="cid"/>
<result column="cname" property="cname"/>
</association>
</resultMap>
<select id="selectMinisterById" resultMap="ministerMapper">
select mid,mname,cid,cname
from minister,country
where countryId=cid and mid=#{mid}
</select>
</mapper>
<association />标签用于一对一或多对一关联,<collection/>用于一对多。<association />标签中javaType与<collection/>中ofType用法极为相似,均后接指定的对象类型。查询原理与一对多相似。
点击打开链接。