1. 程式人生 > 其它 >mybaits批量新增excel表格中的資料到mysql資料庫出現重複資料解決辦法

mybaits批量新增excel表格中的資料到mysql資料庫出現重複資料解決辦法

技術標籤:常見錯誤點解決提示javamysql

1.修改mysql中的索引

即新增一個唯一索引(注意:此處的索引需要以出現頻率最高的列作為唯一索引)
在這裡插入圖片描述

2.修改mapper.xml檔案中的sql語句

在批量插入的時候 如果有重複的索引會自動更新

    <insert id="batchAddProductInfos" parameterType="java.util.List">
       insert into product (prodId,prodSort,prodName,prodImage,ProdReleaseTime,
prodStatus,prodNvipAllPrice,prodVipAllPrice,proIntegral,proGrowthvalue,proStoreName,prodBrandId,isOnSheleves,prodEveryMaxStorage,prodMoral,isUseCouple,isUseIntegral) values <foreach collection="plist" item="product" index="index" separator=","
> (0,#{product.ProdSort},#{product.ProdName},#{product.ProdImage},#{product.ProdReleaseTime},#{product.ProdStatus},#{product.ProdNvipAllPrice},#{product.ProdVipAllPrice},#{product.ProdIntegral},#{product.ProdGrowthvalue},#{product.ProStoreName},#{product.storeBrandId},#{product.IsOnSheleves}
,#{product.prodEveryMaxStorage},#{product.prodMoral},#{product.IsUseCouple},#{product.IsUseIntegral}) </foreach> <!--where not exists (select * from product where prodName = #{product.ProdName})--> on duplicate key update prodSort = values(prodSort), prodName = values(prodName), prodImage = values(prodImage), ProdReleaseTime = values(ProdReleaseTime ), prodStatus = values(prodStatus), prodNvipAllPrice = values(prodNvipAllPrice), prodVipAllPrice = values(prodVipAllPrice), proIntegral = values(proIntegral), proGrowthvalue = values(proGrowthvalue), proStoreName = values(proStoreName), prodBrandId = values(prodBrandId), isOnSheleves = values(isOnSheleves), prodEveryMaxStorage = values(prodEveryMaxStorage), prodMoral = values(prodMoral), isUseCouple = values(isUseCouple), isUseIntegral = values(isUseIntegral) </insert>