:  此文中的实体类还是沿用上一章的Emp和Dept两个类

 

还是老样子,不细说 直接上代码

01.在emp.xml中  配置和Dept的多对一的相关信息

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <!DOCTYPE mapper
 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="cn.happy.dao.EmpDao">
 6     <resultMap id="empMap" type="cn.happy.entity.Emp">
 7         <id property="empId" column="empNo"/>
 8         <result property="empName" column="ENAME"/>
 9         <result property="job"/>
10         <result property="mgr"/>
11         <result property="hiredate"/>
12         <result property="sal"/>
13         <result property="comm"/>
14         <association property="dept" javaType="cn.happy.entity.Dept">
15             <id property="deptNo"/>
16             <result property="deptName" column="DNAME"/>
17             <result property="loc"/>
18         </association>
19     </resultMap>
20     
21     <select id="getAllEmpInfo" resultMap="empMap">
22         select * from Emp e,Dept d where e.deptno=d.deptno
23     </select>

 

使用association关键字关联Dept类   将dept属性的所有字段配置出来。

测试 多对一

 

02.在Dept.xml中 配置和Emp之间的一对多的关系   

<mapper namespace="cn.happy.dao.DeptDao">
    <resultMap type="Dept" id="deptMap">
        <id property="deptNo" column="deptNo" />
        <result property="deptName" column="DNAME" />
        <!-- 一对多的关系 -->
        <!-- property: 指的是集合属性的值, ofType:指的是集合中元素的类型 -->
        <collection property="emps" ofType="Emp">
            <id property="empId" column="empNo"/>
            <result property="empName" column="ENAME"/>
            <result property="job"/>
            <result property="mgr"/>
            <result property="hiredate"/>
            <result property="sal"/>
            <result property="comm"/>
        </collection>
    </resultMap>
    <sql id="columns">
    
    </sql>
    <!-- 使用ResultMap关联dao的查询    解决级联查询问题   resultMap取值为上面的ResultMap节点配置的id属性值 -->
    <select id="getAllDept" resultMap="deptMap">
        select * from Emp e,Dept d where e.deptno=d.deptno
    </select>

在这里由于emps属性是Set<Emp>  集合类型   所以就使用了collection标签来关联emp属性的字段。

 测试   一对多