MyBatis6-一对一查询

使用resultType

从需求上,首先确定查询的主表,再确定查询的关联表.

第一步 写查询语句

SELECT 
    o.*,
    u.user_name
FROM 
    Orders as o
INNER JOIN
    Users as u
ON o.user_id = u.user_id

第二步 创建POJO

我们现在有两个POJO,第一个是Order,第二个是User;分别对应Orders和Users.
我们现在是连表查询,查询出来的结果集,我们可以看成一张表,所以要创建对应的POJO.
注:不能修改已有的两个POJO.我们要继承Order,来添加Users表查询出来的字段.

public class OderCustom extends Order {
    private String userName;
}

第三步 创建mapper.xml


    

剩下的就是创建接口与调试.

resultMap

使用resultMap讲查询结果中的订单信息映射到Order对象中,在Order类中添加User属性,讲关联查询出来的用户信息映射到Order对象中的User属性中.

第一步 创建SQL语句与resultType一样

第二步 创建修改Order 类

public class OderCustom extends Order {
    private int orderId;
    private User user;
}

第三步 创建mapper.xml



    
    
        
        
        

        
        
            
            
            

        

    


    

resultType和resultMap小结

resultType: 实现比较简单,只要保证属性和字段对应就可以.
resultMap: 需要单独定义resultMap,如果对查询结果有特殊要求,比如延迟加载.

你可能感兴趣的:(MyBatis6-一对一查询)