2016-10-26 5 views
0

私は処理して、データを挿入する必要があるCSVファイルを持っています。これは非常に単純なジョブです しかし、データベースで私はcsvファイルの最初の行がヘッダを持っているかどうかをチェックする必要があります。これらの最初と最後の行は、単に最初のステップとしてTaskletStepを書き、Springバッチで処理する前にcsvファイルのヘッダー/テイラーを検証する方法

+0

あなたはhttp://stackoverflow.com/questions/18517983/spring-batch-validate-header-lines-見てきましたin-input-csv-file-if-it-i?は、 – Asoub

答えて

1

をこのファイルを無視し存在しない場合NumberOfRows | - | DEPT | TLR DATE 最後の行の最初の行は、HDRにする必要があります。ファイルを開き、最初の行を読んでチェックしてから、最後の行が見つかるまで行ごとに読んでください。

最初と最後の行が期待通りでない場合は、適切な例外をスローします。

すべてのファイルが処理された後にフッターコールバックが呼び出されるため、SpringBatch FlatFileItemReaderのヘッダーとフッターのコールバックを単純に使用することはできません。

EDIT:追加の例

このような何か:

@Autowired 
private JobBuilderFactory jobBuilderFactory; 

@Autowired 
private StepBuilderFactory stepBuilderFactory; 

@Bean 
public Job job() throws Exception { 
    return this.jobBuilderFactory.get(JOB_NAME) 
       .start(validateStep()) 
       .next(yourNormalStepGoesHere()) 
       .build(); 
} 

@Bean 
protected Step validateStep() throws Exception { 
    return this.stepBuilderFactory.get("SimpleTest_step1_Step") 
    .tasklet(tasklet()) 
    .build(); 
} 

@Bean 
protected Tasklet tasklet() { 
    return (contribution, context) -> { 
      // open file 
      // read first line 
      // check first line 
      // read lines until last line is read 
      // check last line 
      // close file 
      return RepeatStatus.FINISHED; 
    }; 
} 
+0

私はSpringバッチの新機能で、学習と実装を始めたばかりのので、いくつかの例やサンプルを与えることができますか、ありがとうございます。 –

+0

私は例を追加しました。 –

関連する問題