二.mybatis高级结果映射

一.介绍与应用场景

  • 通常我们会遇到这样一个业务场景:有一个班级叫A班,班级有10个学生(B),学生包括了性别,年龄,家庭情况(C),每个学生家庭情况包含住址,父母的姓名的属性,那么现在通过mysql关联查询查询到以上所有信息,那么查询结果如何映射成一个对象,这就是mybatis高级结果映射要做的事情。
  • 其中涉及到一对多与一对一的结果映射关系,想了解更多,请看文档,不在赘述。
    结果映射介绍

二准备工作

  • 建表


    image.png
  • 建DTO
    课程
public class Course {
    private Integer id;
    private String cousreName;
    List students;
}

学生

public class Student {
    private Integer id;
    private String stuName;
    private Address  address;
}

家庭情况

public class  Address {
    private Integer id;
    private String address;
}
  • .结果映射与sql

  
  
  
    
    
    
     
      
    
  



三.分析

  • 属性分析resultMap: id="testMap"(自定义),type="course"(映射的dto)
  • 属性分析result: column(mysql字段),property(dt对应字段)
  • collection(一对多映射),ofType(子类映射的dto)
  • association(一对一)
  • 那为什么我的id有id,a_id,s_id呢?结果映射如果不同dto有相同名称属性,需要映射成不同名字,否则只会映射第一个属性,这点要注意。

你可能感兴趣的:(二.mybatis高级结果映射)