目次 > 第2章 バッチフレームワークチュートリアル > 2.2 データベースアクセス機能を用いた単純なジョブ > 2.2.3 ジョブ前処理の実装

2.2.3 ジョブ前処理の実装

本節では、ジョブ前処理の実装方法について説明する。

処理内容

2.2.3 ジョブ前処理の実装

  1. “運用日付テーブル”より“運用日付”を取得する。
  2. 取得した“運用日付”をジョブコンテキストへ設定する。

設計情報例

ジョブ定義例

ジョブ前処理

サポート処理定義例

ジョブサポートロジック

手順

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”を指定する。

  1. パッケージエクスプローラビューで、“sources”フォルダーを右クリックする。
  2. 「新規」→「クラス」を選択し、パッケージに“jp.terasoluna.batch.tutorial.uc0001.jb0001”、名前に“DBJobPreLogic”を入力し、「終了」を押下する。
  3. “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);
        
        //ビジネスロジック処理結果オブジェクトを返却する。
        BLogicResult result = new BLogicResult(ReturnCode.NORMAL_CONTINUE);
        return result;
    }

    /**
     * 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 ビジネスロジック実行機能』

次項:2.2.4 対象データ取得処理の準備

Copyright (C) 2007 NTT DATA CORPORATION