【问题标题】:Spring Batch Add Custom FieldsSpring Batch 添加自定义字段
【发布时间】:2015-05-26 12:56:33
【问题描述】:

我以前从未使用过 Spring Batch,但对于我想要完成的工作来说,它似乎是一个可行的选择。我每晚需要处理 10 个机构的大约 15 个 CSV 文件。我将 CSV 存储到 Oracle 数据库中的临时表中。

CSV 文件可能看起来像这样。

DEPARTMENT_ID,DEPARTMENT_NAME,DEPARTMENT_CODE
100,Computer Science & Engineering,C5321
101,Math,M333
...

但是,当我处理该行并将其添加到数据库时,我需要填写一个机构 ID,该 ID 将根据当时正在处理的文件夹确定。

数据库表应该是这样的

INSTITUTION_ID,DEPARTMENT_ID,DEPARTMENT_NAME,DEPARTMENT_CODE
1100,100,Computer Science & Engineering,C5321

还需要对 CSV 文件中的每一行进行验证。 Spring Batch 也可以处理吗?

我看到了对 CustomItemReader 和 CustomItemWriter 的引用,但不确定这是否是我需要的。我看到的示例似乎很基本,只是将 CSV 完全原样转储到匹配表中。

【问题讨论】:

标签: spring spring-batch batch-processing


【解决方案1】:

是的,你上报的所有任务都可以用spring batch来完成——

对于您可以使用的阅读器 - 多资源项目阅读器,您的通配符名称与您的 - 文件名匹配。

要验证文件中的行,您可以使用项目处理器并处理验证。

对于您的情况,您不需要使用自定义项目编写器 - 您可以在 XML 文件中将项目编写器配置为数据库项目编写器。

我建议您使用基于 XML 的方法进行 Spring 批处理实现。

XML 将用于配置批处理的所有架构 - 如下所示

job -- step -- chunk -- reader -- processor -- writer

为了跟踪错误和异常,您可以在每个阶段实现侦听器。

 -- step Execution Listener 

-- 项目阅读器监听器 -- 项目处理器监听器 -- 项目编写器监听器

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多