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参数,否则无法进行批量操作

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM