多表查询之多对一和一对多解析
一对多
概念: 一个实体对应多个实体
例如:一个部门对应多个员工
需要用
在学生实体类中添加成绩的集合
<resultMap id="empResultMap" type="cn.wolfcode.domain.Emp">
<id property="empno" column="empno"/>
<result property="ename" column="ename"/>
<result property="job" column="job"/>
<result property="mgr" column="mgr"/>
<result property="hiredate" column="hiredate" jdbcType="VARCHAR"/>
<result property="sal" column="sal"/>
<result property="comm" column="comm"/>
<result property="deptno" column="deptno"/>
<result property="dept.DEPTNO" column="dno"/>
<result property="dept.DNAME" column="dname"/>
<result property="dept.LOC" column="loc"/>
<association property="dept" javaType="cn.wolfcode.domain.Dept"
select="cn.wolfcode.mapper.DeptMapper.selById" column="deptno">
<!-- resultMap="cn.wolfcode.mapper.DeptMapper.deptMap">-->
</association>
</resultMap>
<sql id="emp_cols">
emp.empno,ename,job,mgr,hiredate,sal,comm,emp.deptno,dept.deptno </sql>
<select id="findAll" resultMap="empResultMap">
select <include refid="emp_cols"/>
from emp left join dept on emp.deptno=dept.deptno
</select>
<insert id="saveList">
insert into emp(ename,job,mgr,hiredate,sal,comm,deptno) values
<foreach collection="list" item="emp" separator=",">
(#{emp.ename},#{emp.job},#{emp.mgr},#{emp.hiredate},#{emp.sal},#{emp.comm},#{emp.deptno})
</foreach>
</insert>
</mapper>
``` html
property=" " 实体类中的属性名
ofType=" "集合元素类型
多对一
概念:多个实体对应一个实体
例如:多个员工对应一个部门
需要用<association> 返回单个对象 包含一个父对象
在成绩实体类中加一个学生对象
浙公网安备 33010602011771号