zoukankan      html  css  js  c++  java
  • 使用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();
    }
    }

    }

    运行结果如下:

  • 相关阅读:
    用BAT使用FTP命令上传文件
    BAT自动复制最新插件至运行程序
    requests模块源码阅读总结
    Lucene查询语法汇总
    Ansible scp Python脚本
    4.2 rust 命令行参数
    4.1 python中调用rust程序
    冒泡排序
    Golang开发命令行工具之flag包的使用
    MySQL基于Binlog的数据恢复实战
  • 原文地址:https://www.cnblogs.com/zhangzhiqin/p/8549031.html
Copyright © 2011-2022 走看看