我新的Spring Batch的和我相当与它失去了...Spring Batch的平面文件阅读器
我有4个种类的输入文件来处理,这遵循相同的模式:
头 记录 页脚
当然,“记录”是我的4种不同类型文件之间的变化。
当读取文件时,标题中的一个字段指定哪种记录当前组成处理的平面文件。 另外,我的头文件中有3个字段,我必须在将每个(文件)记录插入数据库之前添加到这些字段中。
而且我认为考虑它更困难(对我来说),我还需要计算进程文件的MD5校验和以将此数据添加到我的数据库的所有记录中。
因此,要说明我试着解释:
文件1(类型=合同)
1CONTRACTHDATA1HDATA2HDATA3
2CONTRACTDATA1CONTRACTDATA2CONTRACTDATA3
2CONTRACTDATA1CONTRACTDATA2CONTRACTDATA3
2CONTRACTDATA1CONTRACTDATA2CONTRACTDATA3
3FOOTERDATA
文件2(类型=三级)
1THIRDHDATA1HDATA2HDATA3
2THIRDDATA1THIRDDATA2
2THIRDDATA1THIRDDATA2
2THIRDDATA1THIRDDATA2
3FOOTERDATA
而且我想要什么插入是:
INSERT INTO CONTRACT (field1, field2, field3, field4, field5, field6, field7) VALUES (HDATA1, HDATA2, HDATA3, CONTRACTDATA1, CONTRACTDATA2, CONTRACTDATA3, MD5)
对于我的第一个文件的每个“2 *”行
和
INSERT INTO THIRD (field1, field2, field3, field4, field5, field6) VALUES (HDATA1, HDATA2, HDATA3, THIRDDATA1, THIRDDATA2, MD5)
对于我的第二个文件的每个“2 *”行。
谢谢任何人谁可以帮忙!
谢谢杰克逊。我想我必须将MD5放入作业上下文中,才能从下一个面向块的处理步骤中获取它,并将头信息放入chunkContext中,对吗? – Cheloute
md5在jobexecution context中是。 header info ... stepExecutionContext会工作...或者ItemProcessor中的本地实例变量也可以工作。 –
非常感谢杰克逊,它的作品:) – Cheloute