Mybatis的关联集合映射

1. 关联和集合:public class Emp{ private Integer id; private String name; private Dept dept; //关联 private List<Task> tasks; //Task类表示工作类 }2. 关联映射作用:关联映射解决的就是将查询出的数据映射到关联对象中分类:关联嵌套select查询在本地创建staff表(id,name,dept_id),
摘要由CSDN通过智能技术生成

1. 关联和集合:

public class Emp{
   
    private Integer id;
    private String name;
    private Dept dept;   //关联   
    private List<Task> tasks;  //Task类表示工作类  
}

2. 关联映射

  1. 作用:关联映射解决的就是将查询出的数据映射到关联对象中

  2. 分类:

    1. 关联嵌套select查询

      1. 在本地创建staff表(id,name,dept_id),dept表(id,name,location)

      2. 在本项目的entity包下创建对应的实体类,注意Staff类中出现Dept dept属性

        @Data
        public class Staff {
                 
            private Integer id;
            private String name;
            private Dept dept;
        }
        @Data
        public class Dept {
                 
            private Integer id;
            private String name;
            private String location;
        }
        
      3. 在mapper包下创建StaffMapper接口,定义抽象方法selectStaffDeptList

        public interface StaffMapper {
                 
        
            /**
             * 查询所有员工信息,包括员工所属部分的详细信息
             * @return
             */
            List<Staff> selectStaffDeptList();
        }
        
      4. 添加StaffMapper.xml文件,在文件中修改namespace的值

        1. 定义resultMap,使用关联嵌套select查询
        2. 定义查询staff的sql语句,查询dept的sql语句
    <!--思路1:先将员工的所有信息查询,然后再根据部门id去查询部门的信息,将查询出的部门信息封装到Dept对象中
    特点:对数据库进行了多次查询 可以使用mybatis关联映射中的 嵌套select查询来实现
        -->
        <resultMap id="staffMap" type="cn.tedu.sysmanagement.entity.mybatistest.Staff">
            <id property=
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值