目次 > 第2章 バッチフレームワークチュートリアル > 2.2 データベースアクセス機能を用いた単純なジョブ > 2.2.3 ジョブ前処理の実装
2.2.3 ジョブ前処理の実装
本節では、ジョブ前処理の実装方法について説明する。
処理内容
- “運用日付テーブル”より“運用日付”を取得する。
- 取得した“運用日付”をジョブコンテキストへ設定する。
設計情報例
ジョブ定義例
サポート処理定義例
手順
1. “UC0001_sqlMap.xml”を編集
“運用日付テーブル”より“運用日付”を取得するSQLを定義する。
“resultClass”にはSELECT句で取得する結果を格納するクラスを指定する。以下の定義を<sqlMap></sqlMap>内に追加する。
<select id="getUnyohiduke" resultClass="java.util.Date"> SELECT UNYOHIDUKE FROM UNYOHIDUKETABLE </select>
2.“DBJobPreLogic.java”を作成
ジョブ前処理クラスを作成する。必ず、“jp.terasoluna.fw.batch.openapi.SupportLogic”インタフェースを実装すること。
また、型パラメータには「2.2.2 ジョブコンテキストの実装」の手順1で作成した“JB0001JobContext”を指定する。
- パッケージエクスプローラビューで、“sources”フォルダーを右クリックする。
- 「新規」→「クラス」を選択し、パッケージに“jp.terasoluna.batch.tutorial.uc0001.jb0001”、名前に“DBJobPreLogic”を入力し、「終了」を押下する。
- “DBJobPreLogic.java”を以下のように作成する。
/* * Copyright (c) 2007 NTT DATA Corporation * */ package jp.terasoluna.batch.tutorial.uc0001.jb0001; import java.util.Date; import jp.terasoluna.batch.tutorial.uc0001.JB0001JobContext; import jp.terasoluna.fw.batch.openapi.BLogicResult; import jp.terasoluna.fw.batch.openapi.ReturnCode; import jp.terasoluna.fw.batch.openapi.SupportLogic; import jp.terasoluna.fw.dao.QueryDAO; /** * ジョブ前処理クラス。 */ public class DBJobPreLogic implements SupportLogic<JB0001JobContext> { /** * DAOクラス。 * Springによりインスタンス生成され設定される。 */ private QueryDAO queryDAO = null; /** * ジョブ前処理を実行する。 * “運用日付テーブル”より“運用日付を”取得し、ジョブコンテキストに設定する。 * @param jobContext ジョブコンテキスト */ public BLogicResult execute(JB0001JobContext jobContext) { //“運用日付”を取得し、ジョブコンテキストに設定する。 Date unyohiduke = queryDAO.executeForObject("UC0001.getUnyohiduke", null, Date.class); jobContext.setUnyohiduke(unyohiduke); //ビジネスロジック処理結果オブジェクトを返却する。 return new BLogicResult(ReturnCode.NORMAL_CONTINUE); } /** * QueryDAOを設定する。 * @param queryDAO 設定するQueryDAO */ public void setQueryDAO(QueryDAO queryDAO) { this.queryDAO = queryDAO; } }
3. “JB0001.xml”を編集
“JB0001.xml”にジョブ前処理の定義を追加する。
手順2で作成した“DBJobPreLogic”を指定するため、以下の定義を<beans></beans>内に追加する。
<!-- ジョブ前処理 --> <util:list id="jobPreLogicList"> <bean class="jp.terasoluna.batch.tutorial.uc0001.jb0001.DBJobPreLogic"> <property name="queryDAO" ref="queryDAO" /> </bean> </util:list>
“jobPreLogicList”はBatch版が規定する固定のBeanである。
参考資料
- 『BB-01 データベースアクセス機能』
- 『BD-01 ビジネスロジック実行機能』