我需要逻辑(JAVA),以避免在数据库中更新时Excel工作表中出现重复行

我需要逻辑(JAVA),以避免在数据库中更新时Excel工作表中出现重复行,java,sql-server,excel,Java,Sql Server,Excel,我使用ApachePOI读取excel值,有时我会在excel工作表中遇到重复的行,该行值也会在DB中更新,我在DB中插入的行数中得到错误的值 因此,我需要JAVA逻辑来识别Excel工作表中的重复记录以及如何删除该值?简单的方法是在数据库中添加约束,以防止插入重复行 或者您可以将行保留在内存中(例如在a中)以避免重复行,但这在行太多时不适用 第三种方法是在读取Excel行之前对其进行排序,然后逐行读取。这样,您就不需要将所有行都保存在内存中,因为您可以仅通过比较连续的每两行来判断重复。您可以使

我使用ApachePOI读取excel值,有时我会在excel工作表中遇到重复的行,该行值也会在DB中更新,我在DB中插入的行数中得到错误的值


因此,我需要JAVA逻辑来识别Excel工作表中的重复记录以及如何删除该值?

简单的方法是在数据库中添加约束,以防止插入重复行

或者您可以将行保留在内存中(例如在a中)以避免重复行,但这在行太多时不适用


第三种方法是在读取Excel行之前对其进行排序,然后逐行读取。这样,您就不需要将所有行都保存在内存中,因为您可以仅通过比较连续的每两行来判断重复。

您可以使用“集合”来存储行数据,或者在插入之前,如果该行已经存在,您可以签入数据库。

假设您使用的是从excel工作表中的一行创建的POJO,然后将其插入数据库,您应该在该对象中实现
equals()
hashCode()
。然后将这些对象添加到
集中。在将新对象添加到数据库之前,请检查它是否已在
集中(已添加)。

使用java.util.TreeSet并将每条记录放入可比较的数据库中如何?这将确保值的唯一性,尽管这可能对堆不利。我可以想到的另一种方法是维护集合中的唯一性标识符,并对照它检查每个记录。是的。。它会很好用的。。谢谢你。。