zoukankan      html  css  js  c++  java
  • Mybatis resultMap和resultType的区别

    resultType和resultMap功能类似  ,都是返回对象信息  ,但是resultMap要更强大一些 ,可自定义。因为resultMap要配置一下,表和类的一一对应关系,所以说就算你的字段名和你的实体类的属性名不一样也没关系,都会给你映射出来,但是,resultType就比较鸡肋了,必须字段名一样,比如说 cId和c_id 这种的都不能映射 。下面介绍几个常用的映射关系:

     

     单表查询: resultMap:当使用resultMap做SQL语句返回结果类型处理时,通常需要在mapper.xml中定义resultMap进行pojo和相应表字段的对应。

    <!-- 订单查询关联用户的resultMap
        将整个查询的结果映射到cn.itcast.mybatis.po.Orders中
         -->
        <resultMap type="cn.itcast.mybatis.po.Orders" id="OrdersUserResultMap">
            <!-- 配置映射的订单信息 -->
            <!-- id:指定查询列中的唯 一标识,订单信息的中的唯 一标识,如果有多个列组成唯一标识,配置多个id
                column:订单信息的唯 一标识 列
                property:订单信息的唯 一标识 列所映射到Orders中哪个属性
              -->
            <id column="id" property="id"/>
            <result column="user_id" property="userId"/>
            <result column="number" property="number"/>
            <result column="createtime" property="createtime"/>
            <result column="note" property="note"/>        
        </resultMap>
    View Code

    关联查询(一对一):resultMap对于一对一表连接的处理方式通常为在主表的pojo中添加嵌套另一个表的pojo,然后在mapper.xml中采用association节点元素进行对另一个表的连接处理。例如

    <!-- 订单查询关联用户的resultMap
        将整个查询的结果映射到cn.itcast.mybatis.po.Orders中
         -->
        <resultMap type="cn.itcast.mybatis.po.Orders" id="OrdersUserResultMap">
            <!-- 配置映射的订单信息 -->
            <!-- id:指定查询列中的唯 一标识,订单信息的中的唯 一标识,如果有多个列组成唯一标识,配置多个id
                column:订单信息的唯 一标识 列
                property:订单信息的唯 一标识 列所映射到Orders中哪个属性
              -->
            <id column="id" property="id"/>
            <result column="user_id" property="userId"/>
            <result column="number" property="number"/>
            <result column="createtime" property="createtime"/>
            <result column="note" property=note/>
    
        &lt;!-- 配置映射的关联的用户信息 --&gt;
        &lt;!--<span style="color: #000000;"> association:用于映射关联查询单个对象的信息
        property:要将关联查询的用户信息映射到Orders中哪个属性
         </span>--&gt;
        &lt;association property="user"  javaType="cn.itcast.mybatis.po.User"&gt;
            &lt;!--<span style="color: #000000;"> id:关联查询用户的唯 一标识
            column:指定唯 一标识用户信息的列
            javaType:映射到user的哪个属性
             </span>--&gt;
            &lt;id column="user_id" property="id"/&gt;
            &lt;result column="username" property="username"/&gt;
            &lt;result column="sex" property="sex"/&gt;
            &lt;result column="address" property="address"/&gt;
        
        &lt;/association&gt;
    &lt;/resultMap&gt;</pre>
    
    View Code

    关联查询(一对多):resultMap的处理方式为在订单表数据的pojo中添加一个list,list中为订单明细表的属性,在mapper.xml中采用如下的处理方式:

    -- 订单及订单明细的resultMap
        使用extends继承,不用在中配置订单信息和用户信息的映射
         -->
        <resultMap type="cn.itcast.mybatis.po.Orders" id="OrdersAndOrderDetailResultMap" extends="OrdersUserResultMap">
            <!-- 订单信息 -->
            <!-- 用户信息 -->
            <!-- 使用extends继承,不用在中配置订单信息和用户信息的映射 -->
    
        &lt;!--<span style="color: #000000;"> 订单明细信息
        一个订单关联查询出了多条明细,要使用collection进行映射
        collection:对关联查询到多条记录映射到集合对象中
        property:将关联查询到多条记录映射到cn.itcast.mybatis.po.Orders哪个属性
        ofType:指定映射到list集合属性中pojo的类型
         </span>--&gt;
         &lt;collection property="orderdetails" ofType="cn.itcast.mybatis.po.Orderdetail"&gt;
             &lt;!--<span style="color: #000000;"> id:订单明细唯 一标识
             property:要将订单明细的唯 一标识 映射到cn.itcast.mybatis.po.Orderdetail的哪个属性
               </span>--&gt;
             &lt;id column="orderdetail_id" property="id"/&gt;
             &lt;result column="items_id" property="itemsId"/&gt;
             &lt;result column="items_num" property="itemsNum"/&gt;
             &lt;result column="orders_id" property="ordersId"/&gt;
         &lt;/collection&gt;
        
    
    &lt;/resultMap&gt;</pre>
    
    View Code
  • 相关阅读:
    Meterpreter核心命令
    bugku ctf 杂项 旋转跳跃 (熟悉的声音中貌似又隐藏着啥,key:syclovergeek)
    bugku 神秘的文件
    代码审计
    “百度杯”CTF比赛 九月场 类型:Web 题目名称:SQLi ---不需要逗号的注入技巧
    热烈祝贺北亚获批电子数据司法鉴定执业资格!
    硬盘有坏道的表现和避免硬盘坏道的方法
    如何应对eva存储崩溃的情况?
    linux系统数据恢复过程
    DELL EqualLogic PS6100恢复数据原理概述
  • 原文地址:https://www.cnblogs.com/LoveShare/p/11462882.html
Copyright © 2011-2022 走看看