MyBatis映射文件(二)

目录

一、select元素

1.参数介绍

2.resultType

(1)返回实体对象

(2)返回List集合

(3)返回Map集合,object>

(4)返回Map<主键类型,实体类>集合

3.setting设置自动映射

4.自定义resultMap映射

5.association

(1)联合查询

(2)association-嵌套结果集

(3)association-分步查询&延迟加载

(4)Collection-集合类型&嵌套结果集

(5)Collection-分布查询&延迟加载

(6)discriminator鉴别器


一、select元素

1.参数介绍

select元素用来定义查询语句

​ id:唯一标识符

​            用来引用这条语句,需要和接口的方法名一致

​ parametertype:参数类型

                      ​ 可以不传,MyBatis会根据TypeHandler自动推断

​ resultType:返回值类型

                      ​ 别名或全类名,如果返回的是集合,定义集合中元素的类型。不能和resultMap同时使用。

MyBatis映射文件(二)_第1张图片

2.resultType

(1)返回实体对象

 
    

(2)返回List集合

 
    
    

(3)返回Map集合

​ 键值分别对应列名和对应的值

 
    

(4)返回Map<主键类型,实体类>集合

​ 键值分别对应主键名和对应的实体类


    

​ @MapKey注解:可以指定封装这个map的时候使用哪个属性作为主键

     @MapKey("lastName")
    public Map getEmpByLastNameLikeReturnMap(String lastName);

3.setting设置自动映射

  • autoMappingBehavior默认是PARTIAL,开启自动映射的功能。唯一的要求是列名和javaBean属性名一致

  • 如果autoMappingBehavior设置为null则会取消自动映射

  • 数据库字段命名规范,POJO属性符合驼峰命名法,如A_COLUMN===aColumn,我们可以开启自动驼峰命名规则映射功能,mapUnderscoreToCamelCase=true

4.自定义resultMap映射

(1)属性

  • type:自定义规则的Java类型

  • id:唯一标识,用于标识一个result map

  • autoMapping:如果设置这个属性,MyBatis将会为这个ResultMap开启或者关闭自动映射。这个属性会覆盖全局的属性 autoMappingBehavior。默认值为:unset。


        
        
        
        
        
        
        
    
    
    
    
    

5.association

场景:

​ 查询Employee的同时查询员工对应的部门

(1)联合查询

​ 级联属性封装结果集


        
        
        
        
        
        
    

(2)association-嵌套结果集

 
        
        
        
        
        
        
            
            
        
    

(3)association-分步查询&延迟加载

  • 先按照员工id查询员工信息

  • 根据查询出来的d_id去部门表查出部门信息

  • 部门设置到员工中

 
        
        
        
        
        
        
        
  • 开启延迟加载和属性按需加载需要进行如下配置:



  
        
        

(4)Collection-集合类型&嵌套结果集

 
    
        
        
        
        
            
            
            
            
            
        
    

(5)Collection-分布查询&延迟加载


        
        
        
         

(6)discriminator鉴别器


     
        
        
        
        
        
        
            
            
                
                
            
            
            
                
                
                
                
            
        
     

 

你可能感兴趣的:(MyBatis)