多表查询之多对一和一对多解析

一对多
概念: 一个实体对应多个实体
例如:一个部门对应多个员工
需要用 返回的是集合 List 包含多个子对象
在学生实体类中添加成绩的集合

  <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> 返回单个对象 包含一个父对象
在成绩实体类中加一个学生对象

posted on 2026-01-28 22:35  Zyy_32opr  阅读(19)  评论(0)    收藏  举报

导航