MyBatis笔记:多对一查询之多表连接查询

此仅为个人笔记,若有不周之处,万望指正,不胜感激。

此处多对一查询还是使用一对多的使用的表,点击打开链接。表中外键始终在多的那方,若外键在一的那方就需要创建更多的列,会生成大量冗余数据,过于浪费资源,且不易管理。数据库的表从创建的时候便已经确定了以最好的方式创建,如果因为查询方式的变动而改动表,那只能说明表创建的就不够合理。

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用法极为相似,均后接指定的对象类型。查询原理与一对多相似。 点击打开链接
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值