我新的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