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>


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



posted @ 2021-06-30 11:33  风骚羊肉串  阅读(401)  评论(0编辑  收藏  举报