多表关联查询

数据库表格和java类之间的对应关系

1自动处理映射关系
自动根据java类的属性名和数据库的字段名封装数据要求字段名和属性名相同
2手动处理映射关系
java中的实体类和数据库表格的字段名不同 怎么处理
1 字段使用别名 缺点SQL语句复用度低 无法处理多变关联查询问题
2 定义映射关系 映射关系可以在多处使用 可以处理数据库表格之间一对一 一对多 多对多的关系

定义接口

public interface EmpMapper{
	Emp2 findEmpByEmpno(int empno);
}

处理映射文件

<mapper namespace="com.bjsxt.mapper.EmpMapper">
	//手动定义映射关系
	//1 java类属性名和数据库字段名不一致 需要制定映射关系
	//2 java类属性名和数据库字段名一致 可以不用制定映射关系(单表)
	//3 手动处理映射关系 推荐主字段使用id标签其他字段使用result标签
	<resultMap id="emp2resultMap" type="emp2">
		<id column="empno" property="id"></id>
		<result column="ename" property="name"></result>
		<result column="job" property="job"></result>
		<result column="mgr" property="mgr"></result>
		<result column="hiredate" property="hiredate"></result>
		<result column="sal" property="sal"></result>
		<result column="comm" property="comm"></result>
		<result column="deptno" property="deptno"></result>
	</resultMap>
<select id="findEmpByEmpno" resultMap="emp2resultMap" parameterType="int">
	select*from emp where empno=7521
</select>

</mapper>

2一对一关系处理

接口

Emp findEmpJoinDept(int empno);

映射文件

//一对一映射关系处理
<resultMap id="empJoinDept" type="emp">
	<id column="empno" property="empno"></id>
	<result column="ename" property="ename"></result>
	<result column="job" property="job"></result>
	<result column="mgr" property="mgr"></result>
	<result column="hiredate" property="hiredate"></result>
	<result column="sal" property="sal"></result>
	<result column="comm" property="comm"></result>
	<result column="deptno" property="deptno"></result>
	//处理组合的另一个实体类
	<association property="dept" javaType="dept">
		<id column="deptno" property="deptno"></id>
		<result column="dname" property="dname"></result>
		<result column="loc" property="loc"></result>
	</association>
</resultMap>
<select id="findEmpJoinDept" resultMap="empJoinDept" parameterType="int">
	select*from emp e LEFT JOIN dept d ON e.DEPTNO=d.DEPTNO WHERE e.empno=#{empno}
</select>

未完。。。。。下一篇 一对多 关系处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值