MyBatis resultMap id标签的错误使用方式

MyBatis resultMap id标签的错误使用

我们在编写VO对象,如果业务场景稍微复杂一点,就会用到集合属性。例如用户查看个人订单列表,每个订单又包含多种或者多个规格的商品。

本节的问题主要是我对mybatis id标签的错误使用

id是resultMap以及Collection的子标签,标记出作为 ID 的结果可以帮助提高整体性能。特别注意的是,id是当前命名空间中的一个唯一标识,用于标识一个结果映射。

如下图,itemId(商品id)字段值在数据库中不唯一,错误使用会导致只返回该订单某商品的一条记录。因为对于某个商品,麻辣味和五香味只是商品规格,其商品id是相同的。

MyBatis resultMap id标签的错误使用方式_第1张图片

MyBatis resultMap id标签的错误使用方式_第2张图片

改用普通result标签后,返回正确结果。

MyBatis resultMap id标签的错误使用方式_第3张图片

MyBatis resultMap id标签的错误使用方式_第4张图片

EOF

resultMap标签的使用规则

自定义结果映射规则

    
       
       
       
       
       
       
    
    
    

association联合查询

  • association可以指定联合的javabean对象
  • property="dept":指定哪个属性是联合对象
  • javaType:指定这个属性的类型

       
       
       
       
       
       
           
           
       
    
    
    

使用association进行分布查询

 1、先按照员工id查询员工信息将会调用查询员工的sql

2、根据查询员工信息中的d_id值去部门表中查出部门信息

3、部门设置到员工中

        


       
       
       
       
       
            
       
           
           
              
              
           
       
    
    
    

嵌套结果集的方式,使用collection标签定义关联的集合类型的属性封装规则


       
       
       
       
           
           
           
           
           
       
    
    
    

collection分步查询


       
       
       
      
       
    
   
   
    
    

当分布查询需要传递多个多个值时,将多个值封装map传递

colum=“{key1=column1,key2=colum2...}”

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

你可能感兴趣的:(MyBatis resultMap id标签的错误使用方式)