记一次mybatis关联映射之两条sql映射到一个resultMap中「建议收藏」

记一次mybatis关联映射之两条sql映射到一个resultMap中「建议收藏」目标:在一个查询结果中嵌入另一个Sql的结果集ArrayList。用第一条Sql的结果集中的某些字段值为参数传给第二条Sql(其实是传给第二条Sql的Dao接口,传的参数要对应Dao接口中的形参)第一条SQL<selectid=”elsQueryAll”resultMap=”CompanyResultMapDto”>SELECTid,…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

目标:在一个查询结果中嵌入另一个Sql的结果集ArrayList。用第一条Sql的结果集中的某些字段值为参数传给第二条Sql(其实是传给第二条Sql的Dao接口,传的参数要对应Dao接口中的形参)


第一条SQL

<select id="elsQueryAll" resultMap="CompanyResultMapDto">
    SELECT
        id,
        comp_name,
        comp_area_id,
        (select complete_path from rz_area where id = comp_area_id) as comp_area_name ,
        comp_area_info,
        create_time,
        update_time,
        conn_user_name,
        conn_user_tel,
        data_type,
        balance,
        frozen_balance,
        STATUS,
        delete_flag,
        business_license,
        cs_phone
        main_products,
        lat_x,
        lng_y,
        'sys_company' as target_table
    FROM
	    sys_company
	limit #{start},#{rows}
    </select>

第一条SQL的映射

<resultMap id="CompanyResultMapDto" type="com.rz.dto.RzCompanyDto">
        <id column="id" jdbcType="BIGINT" property="id" />
        <result column="comp_name" jdbcType="VARCHAR" property="compName" />
        <result column="comp_area_id" jdbcType="VARCHAR" property="compAreaId" />
        <result column="comp_area_name" jdbcType="VARCHAR" property="compAreaName" />
        <result column="comp_area_info" jdbcType="VARCHAR" property="compAreaInfo" />
        <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
        <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
        <result column="conn_user_name" jdbcType="VARCHAR" property="connUserName" />
        <result column="conn_user_tel" jdbcType="VARCHAR" property="connUserTel" />
        <result column="data_type" jdbcType="CHAR" property="dataType" />
        <result column="balance" jdbcType="DECIMAL" property="balance" />
        <result column="frozen_balance" jdbcType="DECIMAL" property="frozenBalance" />
        <result column="status" jdbcType="CHAR" property="status" />
        <result column="delete_flag" jdbcType="CHAR" property="deleteFlag" />
        <result column="business_license" jdbcType="BIGINT" property="businessLicense" />
        <result column="cs_phone" jdbcType="VARCHAR" property="csPhone" />
        <result column="main_products" jdbcType="VARCHAR" property="mainProducts" />
        <result column="lat_x" jdbcType="VARCHAR" property="latX" />
        <result column="lng_y" jdbcType="VARCHAR" property="lngY" />
        <result column="targetTable" jdbcType="VARCHAR" property="target_table" />
        <collection property="pictures" select="com.rz.dao.RzPicInfoMapper.selectByTargetTableAndTableId" fetchType="eager" column="{targetTable=target_table,tableId=id}"></collection>
    </resultMap>

第二条SQL及Dao

<select id="selectByTargetTableAndTableId" resultType="com.rz.domain.RzPicInfo">
      select * from rz_pic_info where target_table=#{targetTable} and table_id=#{tableId}
    </select>
/**
     * 该方法已经作为SysCompanyMapper中的联合查询(使用方式参考模板),删除请谨慎
     * @param targetTable
     * @param tableId
     * @return
     */
    List<RzPicInfo> selectByTargetTableAndTableId(@Param("targetTable") String targetTable, @Param("tableId") Long tableId);

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/189634.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vs2015安装失败怎么卸载_vs2013怎么卸载

    vs2015安装失败怎么卸载_vs2013怎么卸载使用微软自带的程序安装卸载工具有时候无法完全卸载VS2005,导致想重新安装VS2005时提示“此计算机上已安装了试用版本。必须先卸载以前安装的试用版本后才能安装另一个试用版”。此时可以下载专用工具“VS2005卸载工具”进行彻底删除,此具工在本人的博客资源中有下载。如果这样彻底删除后还不能安装,则可以进入注册表,找到如下注册键,把它删除:删除HKEY_LOCAL_MACHINE\SOFTW

    2022年9月23日
  • Github搭建个人博客(2019最新版,亲测)

    Github搭建个人博客(2019最新版,亲测)版权声明:本文为徐代龙原创文章,未经徐代龙允许不得转载。https://blog.csdn.net/xudailong_blog/article/details/78762262(一)前言:建议:慢慢看,也就这一篇用心了点写说来话长,一把辛酸泪,可算是弄好了。1起因:在很早很早,大一的时候,估计快记不得日子了,那时候来到PC吧创业团队,一个大一级的学长通过…

    2022年5月27日
  • pycharm企业版激活码-激活码分享[通俗易懂]

    (pycharm企业版激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlMLZPB5EL5Q-eyJsa…

    2022年3月21日
  • ClassCastException。

    ClassCastException。这个错误也很常见,通常在程序中出现强制类型转换时出现这个错误,如下面这段代码所示:publicstaticMapm=newHashMap(){ { put("a","2"); } }; publicstaticvoidmain(String[]args){ IntegerisInt=(Integer)m.get("a"…

    2022年9月8日
  • cygwin 安装 apt-cyg

    cygwin 安装 apt-cyg

    2022年3月5日
  • 适配器简单介绍

    适配器简单介绍适配器的作用如下图:1、这种通信适配器上面装有处理器和存储器(RAM和ROM),硬件地址固化在适配器的ROM中,软件地址(IP地址)在计算机的存储器中。2、适配器在接收和发送各种帧时,不使用计算机的CPU,此时计算机的CPU可以处理其他任务。3、当适配器收到有差错的帧时,就把帧直接丢弃不通知计算机。4、当计算机手收到正确的帧时,就使用中断通知计算机,并交付协议栈中的网络层。5、当计算机发送IP数据…

    2022年5月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号