• 使用collection查询集合属性


    介绍resultMap中使用collection查询集合属性

    业务需求,查询部门中的多个人员

    public class Department {

    private Integer id;
    private String departmentName;
    private List<Employee> emps;

    setter和getter省略

    }

    public class Employee {

    private Integer id;
    private String lastName;
    private String email;
    private String gender;
    private Department dept;

    setter和getter省略

    }

    1。在department接口写方法

    public Department getDeptByIdPlus(Integer id);

    2.找到映射文件写

    <!--嵌套结果集的方式,使用collection标签定义关联的集合类型的属性封装规则 -->
    <resultMap type="com.atguigu.mybatis.bean.Department" id="MyDept">
    <id column="did" property="id"/>
    <result column="dname" property="departmentName"/>
    <!--
    collection定义关联集合类型的属性的封装规则
    ofType:指定集合里面元素的类型
    -->

    <collection property="emps" ofType="com.atguigu.mybatis.bean.Employee">
    <!-- 定义这个集合中元素的封装规则 -->
    <id column="eid" property="id"/>
    <result column="last_name" property="lastName"/>
    <result column="email" property="email"/>
    <result column="gender" property="gender"/>
    </collection>
    </resultMap>
    <!-- public Department getDeptByIdPlus(Integer id); -->
    <select id="getDeptByIdPlus" resultMap="MyDept">
    SELECT d.id did,d.dname dname,
    e.id eid,e.last_name last_name,e.email email,e.gender gender
    FROM department d
    LEFT JOIN tbl_employee e
    ON d.id=e.did
    WHERE d.id=#{id}
    </select>

    3进行测试

    @Test
    public void test06() throws IOException{
    SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();
    SqlSession openSession = sqlSessionFactory.openSession();

    try{
    DepartmentMapper mapper = openSession.getMapper(DepartmentMapper.class);
    Department department = mapper.getDeptByIdPlus(1);
    System.out.println(department);
    System.out.println(department.getEmps());

    }finally{
    openSession.close();
    }
    }

    }

    运行结果如下:

  • 相关阅读:
    容器技术(三)搭建本地 Registry【15】
    容器技术(三) 使用公共 Registry【14】
    容器技术(三) 镜像命名的最佳实践【13】
    容器技术(三) RUN vs CMD vs ENTRYPOINT【12】
    容器技术(三) dockerfile常用指令【11】
    容器技术(三) dockerfile调试【10】
    容器技术(三) 镜像缓存特性【9】
    容器技术(三) Dockerfile 构建镜像【8】
    容器技术(三)构建镜像【7】
    layui的图标知识
  • 原文地址:https://www.cnblogs.com/zhangzhiqin/p/8549031.html
Copyright © 2020-2023  润新知