【问题标题】:I need Logic(JAVA) to avoid duplicate Rows in the Excel Sheet while Updating in DB我需要 Logic(JAVA) 以避免在数据库中更新时 Excel 工作表中的重复行
【发布时间】:2011-12-13 08:31:21
【问题描述】:

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

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

【问题讨论】:

  • 使用 java.util.TreeSet 并将每条记录放入 Comparable 怎么样?这将确保唯一的值,尽管这可能对堆不利。我能想到的另一种方法是维护集合中的唯一性标识符并根据它检查每条记录。
  • 是的..它会正常工作.. Tnx 为那个..

标签: java sql-server excel


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2019-06-18
        • 2021-05-24
        • 1970-01-01
        • 1970-01-01
        • 2020-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多