tohnamanブログ

東村山に生息するWindows好きな太っちょオヤジプログラマのブログ

Spring Batch その5

今回もSpring Batch の続きです。



完成したモノをGitHubここ に置いています。

今回は、やっとJob本体の作成と実行です。

Step

まず、Jobを構成するするStepを作成します。

@Autowired
private StepBuilderFactory stepBuilderFactory;

@Bean
public Step csv2dbStep() {
  return stepBuilderFactory
          .get("csv2dbStep")
          .<AddressDto, MstAddress>chunk(1000)
          .reader(addressReader())
          .processor(csvToModelItemProcessor())
          .writer(addressWriter())
          .build();
}

Stepは、StepBuilderFactory を利用して作成します。
chunk(1000)とは、ItemReaderが読み取ったデータを何件毎にItemWriterに渡すかを指定しています。
reader、processor、writerには、ここまでに作成してきた処理を指定しています。

Job

やっとここまできました!
Jobを作成します。

@Autowired
private JobBuilderFactory jobBuilderFactory;

@Bean
public Job csv2dbJob() {
  return jobBuilderFactory
          .get("csv2dbJob")
          .flow(csv2dbStep())
          .end()
          .build();
}

Jobは、JobBuilderFactory を利用して作成します。
flowに作成したStep を指定しています。

これで、Job→Step→ItemReader、ItemProcessor、ItemWriterとつながりました。

実行

これ をダウンロードと解凍し、CSV_FILE_PATH の場所に配置します。

STSの実行の構成を開き、左ペインからJava アプリケーションを選択、右クリックメニューから新規を選択する
表示した画面に以下の設定を行い、実行ボタンを押下する
メインタブ
 プロジェクト
  spring-batch-sample
 メイン・クラス
  org.springframework.batch.core.launch.support.CommandLineJobRunner
引数タブ
 プログラム引数
  jp.tokyo.higashimurayama.tohnaman.batch.jobs.csv2db.Csv2dbJob01Config csv2dbJob data=2016/12/31 num=1

コンソールウィンドウに出力されたログにExceptionが発生していないと成功です。
main.sqliteのMST_ADDRESSに東村山の住所だけ登録されているはず


最後はやっつけではありますが、一応書ききることができました。
まだ、やり残していることがあるので、継続していこうと思います