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