pg数据库插入数据的时候,进行数据去重

2023-11-02 08:52:55 浏览数 (3)

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 数据库,在新增的数据的时候,根据字段唯一性去更新数据

1 人点赞