2016-05-25 7 views
0

SQLスクリプトをタスクレットの一部として実行するスプリングバッチサポートはありますか?以下は、私が春バッチで開発しようとしている一連の手順です。スプリングバッチがタスクレットとしてSQLスクリプトを実行する

ステップ2と4では、一連のSQL文を順番に実行する必要があります。どのようにSQLスクリプトを実行することができますか?

  1. 読むのcsvファイルとにデータを挿入するために、インデックスなど、
  2. ランライター操作を、内容
  3. 有効なコンテンツの場合を検証し、既存の表を削除するSQLスクリプトを実行し、テーブルを再作成表。
  4. .sqlファイルに記述されているストアドプロシージャのシーケンスを実行します。
+0

のシリーズを作成するオプションがあり、FileReaderのは、ストアドプロシージャを読み込み、ライターはそれらを実行します –

答えて

1

私はSpring Batchがあなたが求めているものを具体的にサポートしているとは思っていませんが、あなたが探している動作を提供するかどうかを確認するにはScriptUtilsをご覧ください。そうでない場合

は、あなたのSQLの複雑さに応じてTasklet内で直接JdbcTemplateを使用して、標準のチャンクの処理に行くことができるステップ4のためのTasklets

+0

ありがとうライアン。あなたは近づいて私のためにうまくいった。しかし、ScriptUtilsはストアドプロシージャを実行するだけです。しかし、私は戻って任意の更新カウントを返す方法を参照してくださいしないでください。 – santosh

+0

あなたは正しいです - そのクラスのほとんどのメソッドは何も返しません。私は更新カウントを返すことが必要であることを知らなかった。そうであれば、別のJdbcTemplatesを調べる必要があるかもしれません。あるいは、SQLストアを使ってソートのログに更新されたレコードの数を取得し、ログから値を取得することが可能です。 –

+0

ありがとうございます。私はあなたのアドバイスに従います – santosh

関連する問題