MyBatis分步查询

MyBatis分步查询_第1张图片

创建数据库对应的实体类,分步查询要基于至少两个表

1.员工表实体类

//员工实体类
public class Emp {
    private Integer empId;
    private String empName;
    private Integer age;
    private String sex;
    //一个员工只属于一个部门,多个员工可以同属于一个部门
    private Dept dept; 

2.部门表实体类

//部门实体类
public class Dept {
    private Integer deptId;
    private String deptName;
    //一个部门有多个员工
    private List emps;

多对一,是对象;一对多,是集合

多对一场景:查询员工信息及其所在的部门信息

分步查询第①步:通过分步查询,查询员工信息

EmpMapper接口中的方法为

/**
     * 分布查询第一步:根据empId查询员工dept信息
     * @param empId
     * @return
     */
Emp getEmpAndDeptStep(@Param("empId") Integer empId);

映射文件EmpMapper.xml为

    

        
    

    

分步查询第②步:根据员工所对应的dept_id查询部门信息

DeptMapper接口中的方法为

/**
     * 分布查询第二步,根据deptId查询部门
     * @param deptId
     * @return
     */
    Dept getEmpAndDeptStep(@Param("deptId") Integer deptId);
Dept getEmpAndDeptStep(@Param("deptId") Integer deptId);

映射文件DeptMapper.xml为



    

这样就可以查询到员工的详细信息了

MyBatis分步查询_第2张图片

 下面是一对多场景:查询一个部门中的所有员工

分步查询第①步:根据deptId查找部门

DeptMapper接口中的方法为

/**
     * 分布查询第一步,根据deptId查找部门
     * @param deptId
     * @return
     */
    Dept getDeptAndEmpStep(@Param("deptId") Integer deptId);

映射文件DeptMapper.xml为



        
        
        
    

    

分步查询第②步:根据查找到的部门的deptId查找员工

EmpMapper接口中的方法为

/**
     * 分布查询第二步,根据查找到的部门的deptId查找员工
     * @param deptId
     * @return
     */
    List getDeptAndEmpStep(@Param("deptId") Integer deptId);

映射文件EmpMapper.xml为


    

这样,就可以查到某个部门的所有员工了

MyBatis分步查询_第3张图片

总结:分步查询步骤比较固定,但是理解起来可能需要点时间,以后多操作就可以了,还是要记住上面说的:多对一,是对象;一对多,是集合。

一起学习,共同进步!

青青子衿,悠悠我心。

纵我不往,子宁不嗣音?

青青子佩,悠悠我思。

纵我不往,子宁不来?

挑兮达兮,在城阙兮。

一日不见,如三月兮。

 

 

你可能感兴趣的:(MyBatis,mybatis,java,sql,数据库)