mybatis批量操作——更新插入同时进行,有则更新,无则新增


1、实体类

@Data
public class HdParamSettingDO {

    /**
     * 主键
     */
    private Integer id;
    /**
     * 企业ID
     */
    private Long customerId;
    /**
     * 企业地区码
     */
    private String locationCode;
    /**
     * 记录有效性
     */
    private Boolean valid;
    /**
     * 记录创建时间
     */
    private Date createDate;
    /**
     * 记录最终更新时间
     */
    private Date modifyDate;
}


2、Dao层

/**
     * 查询需要插入
     *
     * @param paramSettings 需要插入数据集合
     */
    int initParamSetting(@Param("paramSettings") List paramSettings);


3、Mapper层


        INSERT INTO tx_hd_param_setting (
          customer_id,
          location_code
        ) VALUES
        
           #{setting.customerId,jdbcType=BIGINT},
           #{setting.locationCode,jdbcType=VARCHAR}
        
        ON DUPLICATE KEY UPDATE
        customer_id = VALUES(customer_id),
        location_code = VALUES(location_code)
   

提示:mysql支持批量操作前提需要在配置文件链接数据库地址后面增加 

&allowMultiQueries=true参数,否则无法进行批量操作