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>