1 需求
我们现在有一个list 集合的数据,比如要插入 user 表
但是需要根据某几个字段进行去重,如果这几个字段一样,那么就只是选择一个,在代码里面只是选择一个,然后进行插入的时候,如果这几个字段和数据库一样,那么就做更新操作
2 实现1(代码去重)
代码语言:javascript复制List<User> dataList = new ArrayList<User>
//数据去重(username age obsTime)
// 根据这3个字段进行去重
Set<User> set = new HashSet<>(dataList);
List<User> newList = new ArrayList<>(set);
然后将这个list 插入到数据库
HashSet 有去重的作用,去重的规则需要在实体类里面写
代码语言:javascript复制public class User{
private String username;
private Date obsTime;
private String password;
private String age ;
private String class;
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user= (User) o;
return username.equals(user.username) && obsTime.getTime() == user.obsTime.getTime() && age == user.age ();
}
@Override
public int hashCode() {
return Objects.hash(username, age, obsTime);
}
}
3 实现2(插入去重)
pg 数据库,在新增的数据的时候,根据字段唯一性去更新数据