我需要Logic(JAVA)来避免在DB中更新时Excel表中的重复行

时间:2011-12-13 08:31:22

标签: java sql-server excel

我正在使用Apache POI来读取excel值,有时我在excel表中遇到重复的行,并且在DB中也更新了Row值,并且我在DB中插入的行数得到了错误的值

所以我需要JAVA Logic来识别Excel工作表中的重复记录以及如何删除该值?

3 个答案:

答案 0 :(得分:1)

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

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

第三种方法是在读取之前对Excel行进行排序,然后逐行读取它们。通过这种方式,您无需将所有内容保留在内存中,因为您可以通过仅比较每个连续的2行来判断重复。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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