package jp.terasoluna.batch.functionsample.b001;

import jp.terasoluna.fw.batch.blogic.AbstractTransactionBLogic;
import jp.terasoluna.fw.batch.blogic.vo.BLogicParam;
import jp.terasoluna.fw.batch.exception.BatchException;
import jp.terasoluna.fw.dao.QueryRowHandleDAO;
import jp.terasoluna.fw.dao.event.DataRowHandler;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;

/**
 * DB関連ジョブのサンプル<br>
 * <br>
 * 
 * 事前準備：EMPLOYEEテーブルを作成しておくこと<br>
 * <br>
 * サンプル内容：AbstractTransactionBLogicを継承したビジネスロジック内でRowHandlerを利用して大量データを処理するサンプル。
 * 全ての処理後コミットする
 * 
 * 
 */
public class B001007BLogic extends AbstractTransactionBLogic {

	private static final int BATCH_NORMAL_END = 0;

	@Autowired
	@Qualifier("queryRowHandleDAO")
	private QueryRowHandleDAO queryRowHandleDAO = null;

	@Autowired
	@Qualifier("b001007DataRowHandler")
	private DataRowHandler b001007DataRowHandler = null;

	public int doMain(BLogicParam arg0) {

		try {

			B001007Param param = new B001007Param();
			queryRowHandleDAO.executeWithRowHandler("B001007.selectEmployee",
					param, b001007DataRowHandler);

		} catch (Exception e) {
			throw new BatchException(e);
		}
		return BATCH_NORMAL_END;

	}

}
