栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MyBatis中自定义映射ResultMap

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MyBatis中自定义映射ResultMap

职员表(t_emp):

emp_idemp_nameagegenderdept_id
1Tom10男1
2Jim20女1
3Sam30男1
4Oum27男2
5Kim14女3
6Yum36男3

部门表(t_dept):

dept_iddept_name
1A
2B
3C

POJO实体类:成员变量根据两张表创建

Emp:成员变量(Dept dept)、Getter、Setter、Constructor、toString

Dept:成员变量(List emps)、Getter、Setter、Constructor、toString

1、当字段名和属性名不一致的情况,如何来处理映射关系

(1)为查询的字段设置别名,和属性名保持一致

select emp_id empId, emp_name empName, age, gender from t_emp where emp_id = #{empId}

(2)当字段符合MySQL的要求使用_,而属性符合java的要求使用驼峰


       emp_id:empId emp_name:empName dept_id:deptId-->
       
           
           
       

(3)使用resultMap自定义映射来处理

    
    
        
        
        
        
    
​
    
    
        select * from t_emp where emp_id = #{empId}
    

2、处理多对一的映射关系

public class Emp {
    private Integer empId;
    private String empName;
    private Integer age;
    private String gender;
    //多个员工对应一个部门
    private Dept dept;      // N : 1
​
    //...
}

(1)级联方式处理

      
          
          
          
          
          
          
      
​
      
      
        select t_emp.*, t_dept.dept_name
        from t_emp
        left join t_dept
        on t_emp.dept_id = t_dept.dept_id
        where emp_id = #{empId}
    

(3)分步查询:

优点:可以实现延时加载
注意事项:多对一的分步查询使用的是 association 标签
 
    
        
        
        
        
        
        
        
    
    
    
        select * from t_dept where dept_id = #{deptId}
    

2、处理一对多的映射关系

public class Dept {
    private Integer deptId;
    private String deptName;
    //一个部门对应多个员工
    private List emps;         //1 : N
    
    //...
}

(1)Collection方式

  
        
        
        
        
            
            
            
            
        
    
    
    
    
        select * from t_dept where dept_id = #{deptId}
    
​
    
    
    

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1035241.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号