zoukankan      html  css  js  c++  java
  • resultMap解决数据库字段和实体命名不一致,写于Mapper.xml文件。

    resultType

    resultType可以把查询结果封装到pojo类型中,但必须pojo类的属性名和查询到的数据库表的字段名一致。
    如果sql查询到的字段与pojo的属性名不一致,则需要使用resultMap将字段名和属性名对应起来,进行手动配置封装,将结果映射到pojo中
    resultMap

    resultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括pojo和list实现一对一查询和一对多查询。

    resultMap

    
    



    resultMap可以实现将查询结果映射为复杂类型的pojo,比如在查询结果映射对象中包括pojo和list实现一对一查询和一对多查询。
    这里写图片描述

    其一:

    <!--namespace=绑定java包下对应的Dao下的UserDao接口地址-->
    <mapper namespace="com.yue.Dao.UserDao">
    <!--id是dao接口中方法,resultMap和resultType只能用其中一个-->
        <select id="getUserList" resultMap="rmp">
            select *from mybatismy.mybatisstudy where id=#{id} ,name =#{name}
        </select>
        <!--这里id要对应上面resultMap对应的名,type是返回值类型,-->
        <resultMap id="rmp" type="User">
            <!--column是数据库内字段的名,property是实体中的名字,这样就可转换-->
            <result column="id" property="uuid"/>
            <result column="name" property="uuname"/>
        </resultMap>
    </mapper>

     

    其二:直接在sql语句上给字段取别名。

     <select id="getUserList" resultMap="rmp">
            select id as uuid,name as uuname mybatismy.mybatisstudy where id=#{id} ,name =#{name}
        </select>



    ————————————————

    <resultMap id="postShootNoteMap" type="com.cxqy.community.dto.post.PostShootNoteInfoResp">
    <id property="id" column="id"/>
    <result property="userId" column="user_id"/>
    <result property="authorName" column="author_name"/>
    <result property="title" column="title"/>
    <result property="content" column="content"/>
    <result property="location" column="location"/>
    <result property="viewCount" column="view_count"/>
    <result property="likeCount" column="like_count"/>
    <result property="shareCount" column="share_count"/>
    <result property="shareCount" column="share_count"/>
    <result property="collectCount" column="collect_count"/>
    <result property="commentCount" column="comment_count"/>
    <result property="hotCompositeScore" column="hot_composite_score"/>
    <result property="createTime" column="create_time"/>
    <result property="urlType" column="url_type"/>
    <result property="videoUrl" column="video_url"/>
    <result property="reviewStatus" column="review_status"/>
    <result property="activityId" column="activity_id"/>
    <result property="userLabelUrl" column="label_url"/>
    <result property="userLabelType" column="label_type"/>
    <collection property="topicNameList" ofType="com.cxqy.community.entity.ext.TopicInfo" javaType="list">
    <result property="topicId" column="tid"/>
    <result property="topicName" column="topic_name"/>
    <result property="topicType" column="topic_type"/>
    </collection>
    <collection property="postImageList" ofType="com.cxqy.community.entity.ext.PostImageInfo" javaType="list">
    <result property="imageUrl" column="image_url"/>
    <result property="imageStatus" column="image_status"/>
    <result property="sequence" column="sequence"/>
    <result property="urlType" column="url_type"/>
    <result property="videoUrl" column="video_url"/>
    </collection>
    <collection property="postGoodsResps" ofType="com.cxqy.community.entity.ext.PostGoodsResp" javaType="list">
    <result property="goodsId" column="goods_id"/>
    <result property="goodsName" column="goods_name"/>
    <result property="goodsType" column="goods_type"/>
    <result property="price" column="price"/>
    <result property="photo" column="photo"/>
    <result property="status" column="status"/>
    <result property="goodsLabel" column="goodsLabel"/>
    </collection>
    </resultMap>

    <select id="getNoteUserWatchList" resultMap="postShootNoteMap">
    SELECT p.id,
    p.user_id,
    p.title,
    sc.view_count,
    sc.like_count,
    sc.share_count,
    sc.collect_count,
    sc.comment_count,
    p.review_status,
    p.create_time,
    p.city_ids
    pi.image imageUrl,
    pi.image_status,
    pi.type urlType,
    pi.video_url,
    t.id tid,
    t.topic_name,
    t.topic_type,
    l.label_url,
    l.label_type,
    pg.goods_id,
    tgd.title goodsName,
    tgd.goods_type
    FROM trip_note_db.t_note p
    LEFT JOIN trip_note_db.t_note_image pi ON p.id = pi.note_id
    LEFT JOIN trip_note_db.t_note_count sc on sc.id = p.id
    LEFT JOIN trip_note_db.t_note_topic pt ON pt.note_id = p.id
    LEFT JOIN community_db.t_topic t ON pt.topic_id = t.id
    LEFT JOIN user_db.t_user_label u ON u.user_id = p.user_id
    LEFT JOIN user_db.t_label l ON l.id = u.label_id
    LEFT JOIN trip_note_db.t_note_goods pg on p.id=pg.note_id
    LEFT JOIN shop_db.t_goods_description tgd on pg.goods_id=tgd.gid
    WHERE p.review_status=1
    and pi.is_delete=0
    and p.id in
    <foreach collection="noteIdList" index="index" item="item" open="(" separator="," close=")">
    #{item}
    </foreach>
    ORDER BY
    field (
    p.id,
    <foreach collection="noteIdList" item="item" separator=",">
    #{item}
    </foreach>
    )
    </select>


    ------------------------------



  • 相关阅读:
    1.Lucene
    docker 安装常用服务
    docker 常用命令
    05-vue中使用样式
    04-vue的事件修饰符
    03-用基本指令实现跑马灯效果
    02-vue基本指令
    01-vue分层概念MVVM
    Redis-持久化机制
    BigDecimal工具类
  • 原文地址:https://www.cnblogs.com/yangsanluo/p/14953743.html
Copyright © 2011-2022 走看看