one2many.DepartmentMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!-- namespace 使用对应的Dao层的接口 -->
<mapper namespace="com.qianfeng.one2many.IDepartmentDao">

    <resultMap type="Department" id="deptMap">
        <id property="did" column="did"/>
        <result property="dname" column="dname" />
        <!-- collection 表示多的关系 
            javaType 属性的类型
            ofType 列表中元素的类型
            column 本映射文件是针对部门的映射,对应的列从t_dept里来找, 对应的列的值,要传给select对应的查询使用
        -->
        <!-- 嵌套查询 -->
        <collection property="emps" 
            javaType="java.util.ArrayList"
            ofType="com.qianfeng.one2many.Employee"
            column="did"
            select="com.qianfeng.one2many.IEmployeeDao.findByDeptId">
        </collection>
    </resultMap>
    
    <resultMap type="Department" id="deptMap2">
        <id property="did" column="did"/>
        <result property="dname" column="dname" />
        <!-- collection 表示多的关系 
            javaType 属性的类型
            ofType 列表中元素的类型
            column 本映射文件是针对部门的映射,对应的列从t_dept里来找, 对应的列的值,要传给select对应的查询使用
        -->
        <!-- 嵌套结果 -->
        <collection property="emps" 
            javaType="java.util.ArrayList"
            ofType="com.qianfeng.one2many.Employee"
            resultMap="com.qianfeng.one2many.IEmployeeDao.empMap2">
        </collection>
    </resultMap>
    
    <select id="findById" parameterType="int" resultMap="deptMap">
        select * from t_dept where did=#{did}
    </select>
    
    <select id="findById2" parameterType="int" resultMap="deptMap2">
        select * from t_dept d
        inner join t_emp e
        on d.did=e.deptId
        where d.did=#{did}
    </select>
    
    <!-- 获取自增的id 
        useGeneratedKeys="true" 针对mysql
        keyProperty 将自增的数据赋值给哪个属性
        
        会将自增的id赋值给传来的部门对象中的did属性
    -->
    <insert id="add" parameterType="Department" useGeneratedKeys="true" keyProperty="did">
    
        insert into t_dept(dname) values(#{dname})
    </insert>
    
    <insert id="add1" parameterType="Department">
    <!-- 插入数据后order="AFTER",通过last_insert_id() 获取自增的值,赋值给did属性 -->
        <selectKey keyProperty="did" order="AFTER" resultType="int">
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into t_dept(dname) values(#{dname})
    </insert>
    
</mapper>```

<````````````````````````````````````````````````````````````````````>

这个很重要吧

          javaType 属性的类型
          ofType 列表中元素的类型
          column 本映射文件是针对部门的映射,对应的列从t_dept里来找, 对应的列的值,要传给select对应的查询使用
      -->
      <!-- 嵌套查询 -->
      <collection property="emps" 
          javaType="java.util.ArrayList"
          ofType="com.qianfeng.one2many.Employee"
          column="did"
          select="com.qianfeng.one2many.IEmployeeDao.findByDeptId">
      </collection>



©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 01. 你做梦都想要陪伴你的人和你想要远离的人也许是同一个人。尤其是当这个人成为你生命中最重要的那个人的时候,也许...
    谢丹儒阅读 982评论 1 3
  • 文|小李非刀 我们公司说大不大,说小不小,也差不多近700号人了。所以沟通的效率就显得尤为重要了,尤其遇到一些说了...
    小李非刀阅读 568评论 0 2
  • 前两天参加一场读书活动,邀请嘉宾是一位从业20年的入殓师。 他说,现在自杀的趋势年轻化。很多青少年因为考试排名/情...
    李心安阅读 646评论 2 5