mybatis 批量insert

来源:互联网 发布:java知识点重点和难点 编辑:程序博客网 时间:2024/04/29 21:34

    //method for testing
    public int insertList(@Param("datalist") List<ZZJobTestData> datalist);
    <!-- 批量添加example 1. 有自增主键 -->

    <insert id="insertList" useGeneratedKeys="true" parameterType="java.util.List">
        <selectKey resultType="Long" keyProperty="id" order="BEFORE">
            SELECT SQ_RRS_JOB_SEQUENCE.NEXTVAL FROM DUAL
        </selectKey>
        <![CDATA[
        insert into ZZJOBTEST
          (ID, CODE, NAME)
        SELECT SQ_RRS_JOB_SEQUENCE.NEXTVAL, A.* FROM (
        ]]>
        <foreach collection="datalist" item="item" index="index" separator="UNION ALL" >
            <![CDATA[
                select     
            ]]>
            #{item.code, jdbcType=VARCHAR javaType=string},
            #{item.name, jdbcType=VARCHAR javaType=string}
            <![CDATA[
            FROM DUAL
            ]]>
        </foreach>
        <![CDATA[
              )A
          ]]>

    </insert>


    //method for testing
    public int insertList2(@Param("datalist") List<ZZJobTestData> datalist);

    <!-- 批量添加example 2. 没有自增主键 -->
    <insert id="insertList2" parameterType="java.util.List">
        <![CDATA[
            insert into ZZJOBTEST2(ID, CODE, NAME)
                  select A.* from (
        ]]>
        <foreach collection="datalist" item="item" index="index" separator="UNION ALL" >
        <![CDATA[
                select     
        ]]>
                #{item.id} ,
                #{item.code} ,
                #{item.name}
         <![CDATA[
               from dual
         ]]>
        </foreach>
        <![CDATA[
              )A
          ]]>

    </insert>


public void saveRRSLesJDMSGList(@Param("datalist") List<RRSLesJDMSG> datalist);

    <!-- 批量添加节点数据 -->
    <insert id="saveRRSLesJDMSGList" parameterType="java.util.List">
        <selectKey resultType="Long" keyProperty="id" order="BEFORE">
            SELECT SQ_RRS_LESJDMSG_SEQUENCE.NEXTVAL FROM DUAL
        </selectKey>
        <![CDATA[
            insert into RRS_LES_JDMSG_INTEREFACE
            (
                ID,
                BSTNK,
                BSTKD,
                TKNUM,
                POSNR,
                SOURCE,
                SOURCE_SN,
                SDABW,
                KUNNR,
                KUNWE,
                NAME1,
                MESSAGE,
                Q0_LEI,
                DATETIME,
                ADD1,
                ADD2,
                ADD3,
                ADD4,
                ADD5,
                ADD6,
                ADD7,
                ADD8,
                ADD9,
                ADD10,
                CREATE_DATE_TIME,
                LES_CREATE_DATE_TIME
            )
                  SELECT SQ_RRS_LESJDMSG_SEQUENCE.NEXTVAL, A.* FROM (
        ]]>
        <foreach collection="datalist" item="item" index="index" separator="UNION ALL" >
        <![CDATA[
                select     
        ]]>
                #{item.bstnk} ,
                #{item.bstkd} ,
                #{item.tknum} ,
                #{item.posnr} ,
                #{item.source} ,
                #{item.source_sn} ,
                #{item.sdabw} ,
                #{item.kunnr} ,
                #{item.kunwe} ,
                #{item.name1} ,
                #{item.message} ,
                #{item.q0_lei} ,
                #{item.datetime} ,
                #{item.add1} ,
                #{item.add2} ,
                #{item.add3} ,
                #{item.add4} ,
                #{item.add5} ,
                #{item.add6} ,
                #{item.add7} ,
                #{item.add8} ,
                #{item.add9} ,
                #{item.add10} ,
                #{item.create_date_time} ,
                #{item.les_create_date_time}
         <![CDATA[
               from dual
         ]]>
        </foreach>
        <![CDATA[
              )A
          ]]>
    </insert>

0 0
原创粉丝点击