mybatis 中 批量插入 (oracle 、mysql)

1、oracle 分別有兩種方法:

第一種:

<insert id="batchInsert" parameterType="java.util.List">
    INSERT INTO t_defect_fault_ratio(id, site, site_id, region, org_id, c_createdate, fault_num,defect_num)
    <foreach collection="list" item="item" index="index" separator="union all">
        SELECT
        #{item.id,jdbcType=VARCHAR},
        #{item.site,jdbcType=VARCHAR},
        #{item.site_id,jdbcType=VARCHAR},
        #{item.region,jdbcType=VARCHAR},
        #{item.org_id,jdbcType=VARCHAR},
        #{item.c_createdate,jdbcType=VARCHAR},
        #{item.fault_num,jdbcType=NUMERIC},
        #{item.defect_num,jdbcType=NUMERIC}
        from dual
    </foreach>
</insert>

第二種 :

<insert id="batchInsert" parameterType="java.util.List">
    INSERT ALL
    <foreach collection="list" item="item" index="index">
        INTO t_defect_fault_ratio (id, site, site_id, region, org_id, c_createdate, fault_num,defect_num) VALUES
        (
        #{item.id,jdbcType=VARCHAR},
        #{item.site,jdbcType=VARCHAR},
        #{item.site_id,jdbcType=VARCHAR},
        #{item.region,jdbcType=VARCHAR},
        #{item.org_id,jdbcType=VARCHAR},
        #{item.c_createdate,jdbcType=VARCHAR},
        #{item.fault_num,jdbcType=NUMERIC},
        #{item.defect_num,jdbcType=NUMERIC}
         )
    </foreach>
    select 1 from dual
</insert>

 

mysql:

<insert id="batchInsert" parameterType="java.util.List">
    INSERT
    INTO t_defect_fault_ratio(id, site, site_id, region, org_id, c_createdate, fault_num,defect_num)
    VALUES
    <foreach collection="list" item="item" index="index" separator=",">
        (
        #{item.id,jdbcType=VARCHAR},
        #{item.site,jdbcType=VARCHAR},
        #{item.site_id,jdbcType=VARCHAR},
        #{item.region,jdbcType=VARCHAR},
        #{item.org_id,jdbcType=VARCHAR},
        #{item.c_createdate,jdbcType=VARCHAR},
        #{item.fault_num,jdbcType=VARCHAR},
        #{item.defect_num,jdbcType=VARCHAR}
        )
    </foreach>
</insert>

 

以上代碼親測有效。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章