• MyBatis3系列__06查询的几点补充


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

    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>
    
  • 相关阅读:
    判断字符串是否含有特殊字符和emoji表情
    支付宝PC端支付接口使用流程
    AccessControlAllowOrigin跨域
    antdvue upload组件使用alioss sts上传图片
    微前端的几种实现方案
    使用Powershell脚本实现微信多开
    DebianVIM取消自动缩进
    DebianVIM设置mouse=a不生效解决办法
    rest接口的函数需要是public
    No provider available from registry for service com.xxx.TestService:1.0.0 on consumer use dubbo version 2.6.2, please check status of providers(disabled, not registered or in blacklist)
  • 原文地址:https://www.cnblogs.com/JackHou/p/10587017.html
Copyright © 2020-2023  润新知