ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MyBatis3系列__06查询的几点补充

2019-03-24 09:51:21  阅读:218  来源: 互联网

标签:__ deptId 06 name MyBatis3 查询 dept tbl id


关于查询的一点补充:
当查询部门信息时,希望查询该部门下的所有员工,下面会采取两种方式实现:

1.联合查询

public Department getDeptWithEmpById(Integer id);
对应的xml文件中新增:

 <resultMap id="myDept" type="com.mybatis.learn.bean.Department">
        <id column="dept_id" property="deptId"/>
        <result column="dept_name" property="deptName"/>
        <!-- 
            collection定义关联集合类型的属性的封装规则 
            ofType:指定集合里面元素的类型
        -->
        <collection property="emps" ofType="com.mybatis.learn.bean.Employee">
            <id column="eid" property="id"/>
            <result column="last_name" property="lastName"/>
            <result column="gender" property="gender"/>
            <result column="email" property="email"/>
        </collection>
    </resultMap>

    <select id="getDeptWithEmpById" resultMap="myDept">
        SELECT d.dept_id, d.dept_name dept_name, e.id eid, e.last_name last_name,
            e.email email,e.gender gender, e.dept_id
            FROM tbl_dept d
            LEFT JOIN tbl_employee e
            ON d.dept_id=e.dept_id
            WHERE d.dept_id=#{deptId}
    </select>

2.分步查询

可以按照上一篇的模式,还是在有需要的时候去查询部门包含的员工信息,具体做法如下:
在EmployeeMapper中新增对应的方法:
public List<Employee> getEmpsByDeptId(Integer deptId);
xml文件中相应的更改:

<select id="getEmpsByDeptId" resultType="com.mybatis.learn.bean.Employee">
        select * from tbl_employee where dept_id=#{deptId}
</select>

在DepartmentMapper中添加查询部门信息的方法:
public Department getDeptStepByDeptId(Integer deptId);
在对应的xml文件中添加以下内容:

 <resultMap id="myDept2" type="com.mybatis.learn.bean.Department">
        <id column="dept_id" property="deptId"/>
        <result column="dept_name" property="deptName"/>
        <collection property="emps"
                    select="com.mybatis.learn.dao.EmployeeMapper.getEmpsByDeptId"
                    column="{deptId=dept_id}" fetchType="lazy">
        </collection>
 </resultMap>

<select id="getDeptStepByDeptId" resultMap="myDept2">
        select dept_id, dept_name from tbl_dept where dept_id=#{deptId}
</select>

标签:__,deptId,06,name,MyBatis3,查询,dept,tbl,id
来源: https://www.cnblogs.com/JackHou/p/10587017.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有