如何解决我们可以在需要跳过第一行和最后一行的文件上使用 Spring 批处理 Item Reader 和 Writer 吗?
在进行一些验证后,我有一个文件要写入数据库。该文件将包含 Header 和 Trailer,需要验证然后跳过,如果满足验证,则应将其间的所有行映射并加载到数据库中。我可以使用 Item Reader 和 Writer 来做到这一点吗?下面是一个示例文件数据,它有一个标题行、一个结尾行,在它们之间是带有要加载到 db 的实际数据的行。任何帮助表示赞赏。
HEADER|xxxxx|20190405T143025Z linedata|linedata|linedata|linedata|||linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|linedata|线数据|线数据
拖车|20190405T143025Z|1
ps:我是一名 IIB 开发人员,这是我第一次使用 Spring Batch。
解决方法
您可以将需求分解为两个步骤:
- 第 1 步:一个简单的 tasklet,它执行验证逻辑(查找头/尾记录并验证它们)。这一步的成功是下一步的前提。
- 第 2 步:一个面向块的 tasklet,只有在第 1 步成功时才会触发,并使用
FlatFileItemReader.setLinesToSkip(1)
跳过标头,并使用过滤以TRAILER
开头的记录的处理器跳过尾标。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。