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

我正在使用Apache POI读取Excel值,有时我遇到Excel表中的重复行,行值也在数据库中更新,我得到错误的数值插入数据库行数

所以我需要JAVA逻辑如何识别Excel表中的重复logging,以及如何删除该值?

您可以使用“设置”来存储行数据或在插入之前,您可以检查数据库中该行是否已经存在。

假设你使用的是从Excel表格中的一行创build的POJO,然后将其插入到数据库中,则应该在该对象中实现equals()hashCode() 。 然后你将这些对象添加到一个Set 。 在将新对象添加到数据库之前,请检查它是否已经在Set (已添加)中。

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

或者您可以将行保留在内存中(例如在一个Set中 )以避免重复的行,但是当行数太多时,这是不适用的。

第三种方法是在读取之前对Excel行进行sorting,然后逐行读取。 这样你就不需要把它们全部留在内存中,因为你可以通过比较每个连续的2行来判断重复。