mybatis之resultmap的使用及其与一对一关联查询一对多关联查询的结合

1.一对一关联查询(在ordermapper.xml中配置):

<resultMap type="order" id="order_user_map">
         <!-- <id>用于映射主键 -->
         <id property="id" column="id"/>
         <!-- 普通字段用result映射 -->
         <result property="userId" column="user_id"/>
         <result property="number" column="number"/>
         <result property="createtime" column="createtime"/>
         <result property="note" column="note"/>
         <!-- aociation用于配置一对一关系
            property:order里面的user属性
            JAVAtYPE:user的数据类型,支持别名
            -->
         <association property="User" javaType="com.itheima.mybatis.pojo.User">
             <id property="id" column="user_id"/>
         <!-- 普通字段用result映射 -->
         <result property="username" column="username"/>
         <result property="address" column="address"/>
         <result property="birthday" column="birthday"/>
         <result property="sex" column="sex"/>
           
         </association>
         
       </resultMap>
        <select id="getOrderUserMap" resultMap="order_user_map">
          select 
            o.`id`,
            o.`user_id` userId,
            o.`number`,
            o.`createtime`,
            o.`note`,
            u.username,
            u.address,
            u.birthday,
            u.sex
          from `order` o
          left join user u
           on u.id=o.user_id
       </select>

2.一对多关联查询

<resultMap type="com.itheima.mybatis.pojo.User" id="user_order_map">
         <!-- <id>用于映射主键 -->
         <id property="id" column="id"/>
         <!-- 普通字段用result映射 -->
         <result property="username" column="username"/>
         <result property="address" column="address"/>
         <result property="birthday" column="birthday"/>
         <result property="sex" column="sex"/>
         <!-- collection用于对应一对多关联
              property:user中order的属性
              oftype:order的数据类型 支持别名
          -->
         <collection property="orders"  ofType="com.itheima.mybatis.pojo.Order">
             <id property="id" column="oid"/>
         <result property="number" column="number"/>
         <result property="createtime" column="createtime"/>
         <result property="note" column="note"/>
         </collection>
       </resultMap>
        <select id="getUserOrderMap" resultMap="user_order_map">
         select 
            o.`id` oid,
            o.`user_id` userId,
            o.`number`,
            o.`createtime`,
            o.`note`,
            u.username,
            u.address,
            u.birthday,
            u.sex
          from `user` u
          left join `order` o
           on u.id=o.user_id
       </select>

猜你喜欢

转载自blog.csdn.net/qq_37706228/article/details/81336063
今日推荐