Mybatis—单表数据装配—ResultMap的联合查询

1.ResultMap进行单表数据装配 :

    问题:字段名和实体类的属性名不一致,数据无法自动填充
  解决:使用ResultMap进行手动声明填充
    使用:
     在select标签上使用ResultMap属性引入外部声明的ResultMap
    在声明ResultMap中:
    
                                   <resultMap type="实体类的全限定路径" id="mymap">
    <!--指定主键填充使用id标签  -->
    <id property="主键属性名" column="主键列名"/>
     <!--普通字段值使用result标签指定  -->
    <result property="普通属性名" column="普通字段名"/>
    ……
   </resultMap> 

                       property是实体类的属性名,column是数据库表的字段名,列名 

 2.ResultMap的N+1方式

   1.单个对象的ResultMapN+1查询(业务装配) (在多方实体中声明一方实体对象的属性Teacher)

   在ResultMap标签中使用association标签进行引用类型属性数据的查询和填充

                         


    2.集合对象的ResultMapN+1查询(业务装配) (集合List,在一方实体中定义)

     在ResultMap标签中使用collection标签进行集合类型属性的数据查询和填充

                              


  ------------------------
  注意:

   在使用ResultMap进行N+1查询的时候,用来进行联动查询的列必须显示的指明数据的填充。

3.ResultMap的联合查询方式:
    1.单个对象的ResultMap联合查询:
    sql语句使用 外连接进行查询

  使用association标签进行指明数据填充

                  

   2.集合对象的ResultMap联合查询:
   sql语句使用 外连接进行查询

   使用collection标签进行指明数据填充


4.AutoMapping自动注入方式联合查询

   在联合查询语句中使用别名别名格式为: "对象属性名.属性名"


木子璇总结时刻:欢迎小伙伴们提出建议哦,如有错误,望大神指出哦,谢谢啦。

猜你喜欢

转载自blog.csdn.net/qq_41617744/article/details/80216988