如何使用Spring Batch在文件和数据库之间同步数据?

时间:2015-11-16 10:08:46

标签: database spring file synchronization spring-batch

我必须使用Spring Batch将数据从文件(Excel)同步到数据库(MySQL)。

将逐个记录处理文件。添加和更新数据库记录工作正常,但我想知道如何检测和删除从文件中删除的数据库中的条目?

我考虑实施这个:

  • 按记录逐行阅读文件
  • 创建或更新数据库中的记录并记住主键
  • 删除所有具有不同主键的记录(处理完所有记录后的最后一步)

您知道如何收集所有已处理的主键并将其传递到最后一步吗? 或者你推荐另一种实现方式吗?

谢谢, 帕特里克

更新:我不允许更改数据库表。

1 个答案:

答案 0 :(得分:0)

使用列标记更新/添加的记录 在主步骤之后创建一个新的,删除未标记的记录。

如果不能选择DB模式修改:

步骤1.将主键从DB转储到CSV(original.csv)
步骤2.创建/更新DB并将更新数据的主键存储到CSV(updated.CSV)
在步骤2之后。创建差异文件:原始减去更新(diff.CSV)
步骤3.读取diff.CSV并通过PK

删除记录