zoukankan      html  css  js  c++  java
  • mybatis--01重复使用resultmap,便于在association中自动映射。

    便于在association中自动映射。需要加一个columnPrefix。

    columnPrefix: 在resultMap的元素中加自动加前缀,便于重用resultmap。

    例:

    1.在每个字段上加author_

    <resultMap id="authorResult" type="Author">
      <id property="id" column="author_id"/>
      <result property="username" column="author_username"/>
      <result property="password" column="author_password"/>
      <result property="email" column="author_email"/>
      <result property="bio" column="author_bio"/>
    </resultMap>

    2.association中使用

    <resultMap id="blogResult" type="Blog">
      <id property="id" column="blog_id" />
      <result property="title" column="blog_title"/>
      <association property="author"
        resultMap="authorResult" />
      <association property="coAuthor"
        resultMap="authorResult"
        columnPrefix="co_" />
    </resultMap>

     3.执行sql

    <select id="selectBlog" resultMap="blogResult">
      select
        B.id            as blog_id,
        B.title         as blog_title,
        A.id            as author_id,
        A.username      as author_username,
        A.password      as author_password,
        A.email         as author_email,
        A.bio           as author_bio,
        CA.id           as co_author_id,
        CA.username     as co_author_username,
        CA.password     as co_author_password,
        CA.email        as co_author_email,
        CA.bio          as co_author_bio
      from Blog B
      left outer join Author A on B.author_id = A.id
      left outer join Author CA on B.co_author_id = CA.id
      where B.id = #{id}
    </select>

    改造结果:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
    <mapper namespace="com.ruoyi.ruoyiwx.mapper.WxMassMapper">
    
        <resultMap id="MassandsendResult" type="WxMass" autoMapping="true" >
    <!--        <id property="id" column="id"/>-->
    <!--        <result property="sysUnitId" column="sys_unit_id" />-->
    <!--        <result property="name" column="name" />-->
    <!--        <result property="type" column="type" />-->
    <!--        <result property="mediaId" column="media_id" />-->
    <!--        <result property="picurl" column="picurl" />-->
    <!--        <result property="scope" column="scope" />-->
    <!--        <result property="content" column="content" />-->
    <!--        <result property="status" column="status" />-->
    <!--        <result property="wxid" column="wxid" />-->
    <!--        <result property="opBy" column="opBy" />-->
    <!--        <result property="opAt" column="opAt" />-->
    <!--        <result property="delFlag" column="delFlag" />-->
            <association property="massSend" resultMap="wxMassSendResult" columnPrefix="ms_" >
            </association>
        </resultMap>
    
        <resultMap id="wxMassSendResult" type="WxMassSend" >
            <id property="id" column="ms_id" />
            <result property="sysUnitId" column="sys_unit_id" />
            <result property="massId" column="massId" />
            <result property="receivers" column="receivers" />
            <result property="status" column="status" />
            <result property="msgId" column="msgId" />
            <result property="errCode" column="errCode" />
            <result property="errMsg" column="errMsg" />
            <result property="wxid" column="wxid" />
            <result property="opBy" column="opBy" />
            <result property="opAt" column="opAt" />
            <result property="delFlag" column="delFlag" />
        </resultMap>
    
        <select id="getWxMassandsend" resultMap="MassandsendResult" >
            select
                m.*,
                ms.id ms_id,
                ms.sys_unit_id ms_sys_unit_id,
                ms.massId ms_massId,
                ms.receivers ms_receivers,
                ms.status ms_status,
                ms.msgId ms_msgId,
                ms.errCode ms_errCode,
                ms.errMsg ms_errMsg,
                ms.wxid ms_wxid,
                ms.opBy ms_opBy,
                ms.wxid ms_wxid,
                ms.opAt ms_opAt,
                ms.delFlag ms_delFlag
            from wx_mass m,wx_mass_send ms
            where m.id=ms.massId and m.wxid=ms.wxid and m.wxid=#{1}
        </select>
    </mapper>

    参考:

    关联的嵌套结果映射   https://mybatis.org/mybatis-3/zh/sqlmap-xml.html#Result_Maps

  • 相关阅读:
    移动应用调试之Inspect远程调试
    使用Stickers拓展集成iMessage简单功能
    iOS 在工程内部创建一个静态库target
    Xcode10 library not found for -lstdc++ 找不到问题
    git 操作规范
    java里面jre版本过低怎么修改
    java实现滑动列表找到目标并且选择
    java实现获取toast弱提示
    查询语句集合
    java-clienk 实现获取手机应用设备信息
  • 原文地址:https://www.cnblogs.com/kltsee/p/13738179.html
Copyright © 2011-2022 走看看