mybatis-plus插入判重
时间: 2023-09-30 15:11:27 浏览: 136
在使用MyBatis-Plus进行判重时,可以通过添加唯一索引和使用ON DUPLICATE key语句来实现。
首先,在数据库表中添加唯一索引,该索引可以是一个或多个字段,用于标识是否存在重复数据。
其次,在对应的实体类中的字段上添加注解@TableField或@TableId来指定索引字段。
然后,在Mapper接口中定义插入方法,并使用@Insert注解指定对应的SQL语句。
最后,在对应的Mapper XML文件中编写插入语句,使用ON DUPLICATE key update语句来更新已存在的数据。
下面是一个示例代码:
```java
// 实体类
@Data
@TableName("admin")
public class AdminEntity implements Serializable {
private static final long serialVersionUID = 244947848024328503L;
@TableId(type = IdType.AUTO)
private Long id;
@TableField(value = "name")
private String name;
@TableField(value = "password")
private String password;
}
// Mapper接口
public interface AdminMapper extends BaseMapper<AdminEntity> {
void saveAll(List<AdminEntity> list);
}
// Mapper XML文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hxj.test.mapper.AdminMapper">
<insert id="saveAll">
insert into admin(name,password) values
<foreach collection="list" item="item" separator=",">
(#{item.name},#{item.password})
</foreach>
ON DUPLICATE key update name=values(name), password=values(password)
</insert>
</mapper>
```
这样,在插入数据时,如果存在重复数据,将会更新对应的字段值,否则将会插入新的数据。