Mapper批量添加一个集合的数据,如果这个数据已经存在,则进行更新,否则进行插入
批量进行数据插入的时候往往有一些数据是已经存在的,进行更新就好了,如何一个mapper进行操作呢?
这个时候就需要用到索引了,根据索引来判断是否是重复的数据,索引的值不能是空的否则就失效了,多个索引的时候,判断这条数据符合所有索引条件,来判断重复
实例看下去
首先,你要有一张表
例如这样的(这个表名为person)
添加索引,在这里我是把名字设成了索引
接着你就可以正常的创建实体类,调用mappper了,Mapper操作数据库是这样的
<insert id="insertList" parameterType="java.util.List">
insert into person(
name,
age,
cell )values
<foreach collection ="list" item="item" index= "index" separator =",">
(
#{item.name},
#{item.age},
#{item.cell} )
</foreach>
ON DUPLICATE KEY UPDATE
name = VALUES(name),
age = VALUES(age),
cell = VALUES(cell)
</insert>
重点在于 ON DUPLICATE KEY UPDATE
是用来判断数据是否已经存在的(这个名字已经存在就进行更新)
请大家多多指教,有不对的地方我一定及时改正