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<HdParamSettingDO> paramSettings);

 


3、Mapper层

<insert id="initParamSetting">
        INSERT INTO tx_hd_param_setting (
          customer_id,
          location_code
        ) VALUES
        <foreach collection="paramSettings"  item="setting" open="(" separator="),(" close=")">
           #{setting.customerId,jdbcType=BIGINT},
           #{setting.locationCode,jdbcType=VARCHAR}
        </foreach>
        ON DUPLICATE KEY UPDATE
        customer_id = VALUES(customer_id),
        location_code = VALUES(location_code)
   </insert>

 

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

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

 

posted @ 2021-12-29 10:43  zsyIndex  阅读(1071)  评论(0)    收藏  举报