All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nablarch.common.dao.DaoContextFactory Maven / Gradle / Ivy

The newest version!
package nablarch.common.dao;

import nablarch.common.idgenerator.IdGenerator;
import nablarch.core.db.connection.AppDbConnection;
import nablarch.core.util.annotation.Published;

/**
 * {@link DaoContext}を生成するファクトリクラス。
 *
 * @author kawasima
 * @author Hisaaki Shioiri
 */
@Published(tag = "architect")
public abstract class DaoContextFactory {

    /** シーケンスID採番用の{@link IdGenerator}実装クラス */
    protected IdGenerator sequenceIdGenerator;      // SUPPRESS CHECKSTYLE サブクラスで使用するフィールドのため。

    /** テーブル採番用の{@link IdGenerator}の実装クラス */
    protected IdGenerator tableIdGenerator;         // SUPPRESS CHECKSTYLE サブクラスで使用するフィールドのため。

    /** スレッド上に保持するデータベース接続 */
    protected ThreadLocal dbConnection = new ThreadLocal();       // SUPPRESS CHECKSTYLE サブクラスで使用するフィールドのため。

    /** SQLビルダー({@link nablarch.common.dao.StandardSqlBuilder}) */
    protected StandardSqlBuilder sqlBuilder = new StandardSqlBuilder();       // SUPPRESS CHECKSTYLE サブクラスで使用するフィールドのため。

    /**
     * DaoContextを生成する。
     *
     * @return DaoContext
     */
    public abstract DaoContext create();

    /**
     * シーケンスIDジェネレータを設定する。
     *
     * @param sequenceIdGenerator シーケンスIDジェネレータ
     */
    public void setSequenceIdGenerator(final IdGenerator sequenceIdGenerator) {
        this.sequenceIdGenerator = sequenceIdGenerator;
    }

    /**
     * テーブルIDジェネレータを設定する。
     *
     * @param tableIdGenerator テーブルIDジェネレータ
     */
    public void setTableIdGenerator(final IdGenerator tableIdGenerator) {
        this.tableIdGenerator = tableIdGenerator;
    }

    /**
     * SQLを構築するビルダー({@link nablarch.common.dao.StandardSqlBuilder})を設定する。
     * 

* 設定しない場合は、{@link nablarch.common.dao.StandardSqlBuilder}が使用される。 * * @param sqlBuilder SQLビルダー */ public void setSqlBuilder(StandardSqlBuilder sqlBuilder) { this.sqlBuilder = sqlBuilder; } /** * DAOで使うコネクションを設定する。 * (トランザクション用です) * * @param aConn データベースコネクション */ public void setDbConnection(final AppDbConnection aConn) { if (aConn == null) { dbConnection.remove(); } else { this.dbConnection.set(aConn); } } /** * DAOで使うコネクションを取得する。 * (トランザクション用です) * * @return データベースコネクション */ public AppDbConnection getDbConnection() { return dbConnection.get(); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy