mybatis实现批量插入更新 -- ON DUPLICATE KEY UPDATE

必须保证有唯一索引,可以是主键索引或者组合索引

<insert id="insertOrUpdate" parameterType="java.util.List">
        INSERT INTO indicators_template_detail_rep(
        id,indicators_name,indicators_id,dimension_name,dimension_id,
        index1, index2, index3, index4, index5, index6, index7,unit, statistical_cycle_name,
        statistical_type, stat_caliber, cal_logic,unit_id, statistical_cycle_id, statistical_type_id,
        cal_Logic_Id,response_dept_id,source_dept_name,response_dept_name, indicators_full_name,template_id
        ) VALUES
        <foreach collection="list" item="item"  separator=",">
            (
            #{item.id},#{item.indicatorsName},#{item.indicatorsId},#{item.dimensionName},#{item.dimensionId} ,
            #{item.index1} ,#{item.index2},#{item.index3},#{item.index4},#{item.index5},#{item.index6},#{item.index7},#{item.unit},#{item.statisticalCycleName},
            #{item.statisticalType},#{item.statCaliber},#{item.calLogic},#{item.unitId},#{item.statisticalCycleId},#{item.statisticalTypeId},
            #{item.calLogicId},#{item.responseDeptId},#{item.sourceDeptName},#{item.responseDeptName},#{item.indicatorsFullName},#{item.templateId}
            )
        </foreach>
         ON DUPLICATE KEY UPDATE
        is_deleted=0,
        indicators_name=VALUES(indicators_name),
        indicators_id=VALUES(indicators_id),
        dimension_name=VALUES(dimension_name),
        dimension_id=VALUES(dimension_id),
        index1=VALUES(index1),
        index2=VALUES(index2),
        index3=VALUES(index3),
        index4=VALUES(index4),
        index5=VALUES(index5),
        index6=VALUES(index6),
        index7=VALUES(index7),
        unit=VALUES(unit),
        statistical_cycle_name=VALUES(statistical_cycle_name),
        statistical_type=VALUES(statistical_type),
        stat_caliber=VALUES(stat_caliber),
        cal_logic=VALUES(cal_logic),
        unit_id=VALUES(unit_id),
        statistical_cycle_id=VALUES(statistical_cycle_id),
        statistical_type_id=VALUES(statistical_type_id),
        cal_Logic_Id=VALUES(cal_Logic_Id),
        response_dept_id=VALUES(response_dept_id),
        source_dept_name=VALUES(source_dept_name),
        response_dept_name=VALUES(response_dept_name),
        indicators_full_name=VALUES(indicators_full_name)
    </insert>
  

 

posted @ 2023-01-31 21:13  蓝色土耳其  阅读(721)  评论(0编辑  收藏  举报