JAVA_EE_Mybatis之ResultMap标签

一、简介:

  1. 标签写在 mapper.xml中,由程序员控制 SQL查询结果与
    实体类的映射关系.
    • 默认 MyBatis 使用 Auto Mapping 特性.
  2. 使用标签时, select * from people

    二、使用 resultMap 实现关联单个对象(N+1 方式)

    介绍:N+1 查询方式,先查询出某个表的全部信息,根据这个表的信息查询另一个表的信息.
    • 与业务装配的区别:
      业务装配:完全可以在 service 里面写的代码,由 mybatis 完成装配,即先查询
    • 实现步骤:
    1. 在 Student 实现类中包含了一个 Teacher 对象
    public class Student {
    private int id;
    private String name;
    private int age;
    private int tid;
    private Teacher teacher;
    
    1. 在 TeacherMapper 中提供一个查询
    1. 在 StudentMapper 中4.3.3.1 装配一个对象时使用
      property: 对象在类中的属性名
      select:通过哪个查询查询出这个对象的信息
      column: 把当前表的哪个列的值做为参数传递给另
      一个查询
    
        
        
        
        
        
        
    
    
    

    三、使用 resultMap 实现关联单个对象(联合查询方式)

    • 只需要编写一个 SQL,在 StudentMapper 中添加下面效果
    • 只要专配一个对象就用这个标签
    • 此时把小的看待
    • javaType 属性:专配完后返回一个什么类型的对象.取值是一个类(或类的别名)
    
        
        
        
        
        
            
            
        
    
    
    

    四、使用 resultMap 实现关联集合对象(N+1 方式)

    1. 在 Teacher 中添加 List
    2. 在 StudentMapper.xml 中添加通过 tid 查询
    3. 在 TeacherMapper.xml 中添加查询全部
      当属性是集合类型时使用的标签
    
        
        
        
    
    
    

    五、使用实现关联集合对象(联合查询方式)

    • 在 teacherMapper.xml 中添加
    • mybatis 可以通过主键判断对象是否被加载过.不需要担心创建重复 Teacher
    • 注意:这里的sql语句为什么要起别名,是因为不起别名的花上面的配置文件中就都使用column=“id”。
    
        
        
        
            
            
            
            
        
    
    
    

    六、使用 Auto Mapping 结合别名实现多表查询.

    • 只能使用多表联合查询方式,且智能查询单个对象
    • 要求:查询出的列别和属性名相同.
    实现方式
    • 在 SQL 是关键字符,两侧添加反单引号
    
    

你可能感兴趣的:(JAVA_EE_Mybatis之ResultMap标签)