Class BasicStatementFactory

java.lang.Object
nablarch.core.db.statement.BasicStatementFactory
All Implemented Interfaces:
StatementFactory
Direct Known Subclasses:
CacheableStatementFactory

public class BasicStatementFactory extends Object implements StatementFactory
StatementFactoryの基本実装クラス。
本クラスでは、下記のSqlStatement実装クラスを生成する。
  • Constructor Details

    • BasicStatementFactory

      public BasicStatementFactory()
  • Method Details

    • getSqlPStatement

      public SqlPStatement getSqlPStatement(String sql, Connection con, DbExecutionContext context) throws SQLException
      SqlPStatementを生成し返却する。
      Specified by:
      getSqlPStatement in interface StatementFactory
      Parameters:
      sql - SQL文
      con - Connectionオブジェクト
      context - DB実行時のコンテキスト
      Returns:
      SQL文を元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合や、データベースアクセスエラーが発生した場合
    • getSqlPStatement

      public SqlPStatement getSqlPStatement(String sql, Connection con, DbExecutionContext context, SelectOption option) throws SQLException
      SqlPStatementを生成し返却する。
      Specified by:
      getSqlPStatement in interface StatementFactory
      Parameters:
      sql - SQL文
      con - Connectionオブジェクト
      context - DB実行時のコンテキスト
      option - 検索処理条件
      Returns:
      SQL文を元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合や、データベースアクセスエラーが発生した場合
    • getSqlPStatement

      public SqlPStatement getSqlPStatement(String sql, Connection con, int autoGeneratedKeys, DbExecutionContext context) throws SQLException
      自動生成キーの取得機能を持つSqlPStatementを生成し返却する。
      Specified by:
      getSqlPStatement in interface StatementFactory
      Parameters:
      sql - SQL文
      con - Connectionオブジェクト
      autoGeneratedKeys - 自動生成キーを返すかどうかを示すフラグ。Statement.RETURN_GENERATED_KEYS または Statement.NO_GENERATED_KEYS
      context - DB実行時のコンテキスト
      Returns:
      SQL文を元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合や、データベースアクセスエラーが発生した場合
    • getSqlPStatement

      public SqlPStatement getSqlPStatement(String sql, Connection con, int[] columnIndexes, DbExecutionContext context) throws SQLException
      自動生成キーの取得機能を持つSqlPStatementを生成し返却する。
      Specified by:
      getSqlPStatement in interface StatementFactory
      Parameters:
      sql - SQL文
      con - Connectionオブジェクト
      columnIndexes - 挿入された行から返される列を示す列インデックスの配列
      context - DB実行時のコンテキスト
      Returns:
      SQL文を元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合や、データベースアクセスエラーが発生した場合
    • getSqlPStatement

      public SqlPStatement getSqlPStatement(String sql, Connection con, String[] columnNames, DbExecutionContext context) throws SQLException
      Description copied from interface: StatementFactory
      自動生成キーの取得機能を持つSqlPStatementを生成し返却する。
      Specified by:
      getSqlPStatement in interface StatementFactory
      Parameters:
      sql - SQL文
      con - Connectionオブジェクト
      columnNames - 挿入された行から返される列を示す列名の配列
      context - DB実行時のコンテキスト
      Returns:
      SQL文を元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合や、データベースアクセスエラーが発生した場合
    • setCommonPropsTo

      protected final void setCommonPropsTo(BasicSqlPStatement sqlp, DbExecutionContext context)
      指定されたBasicSqlPStatementに対して、 実行に必要となる共通のプロパティを設定する。
      Parameters:
      sqlp - 設定対象となるインスタンス。
      context - DBアクセス時の実行時のコンテキスト
    • getSqlPStatementBySqlId

      public SqlPStatement getSqlPStatementBySqlId(String sqlId, Connection con, DbExecutionContext context) throws SQLException
      SQL_IDからSqlPStatementを生成し返却する。
      Specified by:
      getSqlPStatementBySqlId in interface StatementFactory
      Parameters:
      sqlId - 下記形式のSQL_ID
      SQLリソース名 + "#" + SQL_ID)
      con - Connectionオブジェクト
      context - DB実行時のコンテキスト
      Returns:
      SQL_IDを元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合や、データベースアクセスエラーが発生した場合
      See Also:
    • getParameterizedSqlPStatement

      public ParameterizedSqlPStatement getParameterizedSqlPStatement(String sql, Connection con, DbExecutionContext context) throws SQLException
      ParameterizedSqlPStatementを生成し返却する。
      Specified by:
      getParameterizedSqlPStatement in interface StatementFactory
      Parameters:
      sql - SQL文
      con - Connectionオブジェクト
      context - DBアクセス時の実行時のコンテキスト
      Returns:
      SQL文を元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合、データベースアクセスエラーが発生した場合
    • getParameterizedSqlPStatement

      public ParameterizedSqlPStatement getParameterizedSqlPStatement(String sql, Connection con, DbExecutionContext context, SelectOption selectOption) throws SQLException
      ParameterizedSqlPStatementを生成し返却する。
      Specified by:
      getParameterizedSqlPStatement in interface StatementFactory
      Parameters:
      sql - SQL文
      con - Connectionオブジェクト
      context - DBアクセス時の実行時のコンテキスト
      selectOption - 検索処理条件
      Returns:
      SQL文を元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合、データベースアクセスエラーが発生した場合
    • getParameterizedSqlPStatementBySqlId

      public ParameterizedSqlPStatement getParameterizedSqlPStatementBySqlId(String sqlId, Connection con, DbExecutionContext context) throws SQLException
      SQL_IDからParameterizedSqlPStatementを生成し返却する。
      Specified by:
      getParameterizedSqlPStatementBySqlId in interface StatementFactory
      Parameters:
      sqlId - 下記形式のSQL_ID
      SQLリソース名 + "#" + SQL_ID)
      con - Connectionオブジェクト
      context - DB実行時のコンテキスト
      Returns:
      SQL_IDを元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合や、データベースアクセスエラーが発生した場合
    • getParameterizedSqlPStatementBySqlId

      public ParameterizedSqlPStatement getParameterizedSqlPStatementBySqlId(String sql, String sqlId, Connection con, DbExecutionContext context) throws SQLException
      SQL_IDからParameterizedSqlPStatementを生成し返却する(可変条件を持つSQL用)。
      Specified by:
      getParameterizedSqlPStatementBySqlId in interface StatementFactory
      Parameters:
      sql - SQL文(可変条件構築後のSQL文)
      sqlId - SQL_ID
      con - Connectionオブジェクト
      context - DB実行時のコンテキスト
      Returns:
      SQL文を元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合や、データベースアクセスエラーが発生した場合
    • getParameterizedSqlPStatementBySqlId

      public ParameterizedSqlPStatement getParameterizedSqlPStatementBySqlId(String sql, String sqlId, Connection con, DbExecutionContext context, SelectOption selectOption) throws SQLException
      SQL_IDからParameterizedSqlPStatementを生成し返却する(可変条件を持つSQL用)。
      Specified by:
      getParameterizedSqlPStatementBySqlId in interface StatementFactory
      Parameters:
      sql - SQL文(可変条件構築後のSQL文)
      sqlId - SQL_ID
      con - Connectionオブジェクト
      context - DB実行時のコンテキスト
      selectOption - 検索処理オプション
      Returns:
      SQL文を元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合や、データベースアクセスエラーが発生した場合
    • buildAdditionalInfoForSqlID

      protected final String buildAdditionalInfoForSqlID(String sqlId, String sql)
      付加情報文字列を組み立てる。 この情報は、ログ出力に使用されることを想定している。
      Parameters:
      sqlId - SQL ID
      sql - SQL文
      Returns:
      付加情報
      See Also:
    • setLikeConditionPropsTo

      protected final void setLikeConditionPropsTo(BasicSqlPStatement sqlp)
      指定されたBasicSqlPStatementに対して、 LIKE条件必要なプロパティを設定する。
      Parameters:
      sqlp - 設定対象となるインスタンス
    • setObjectFieldPropsTo

      protected final void setObjectFieldPropsTo(BasicSqlPStatement sqlp)
      指定されたBasicSqlPStatementに対して、 オブジェクトのフィールドの値を扱う場合に必要なプロパティを設定する。
      Parameters:
      sqlp - 設定対象となるインスタンス
    • createParser

      protected final SqlParameterParser createParser()
      SqlParameterParserインスタンスを生成する。
      Returns:
      SqlParameterParserインスタンス
    • getVariableConditionSql

      public String getVariableConditionSql(String sql, Object condition)
      可変条件を持つSQL文の可変部分を構築する。
      Specified by:
      getVariableConditionSql in interface StatementFactory
      Parameters:
      sql - SQL文
      condition - 条件をフィールドに持つオブジェクト
      Returns:
      可変部分を構築したSQL
    • getVariableConditionSqlBySqlId

      public String getVariableConditionSqlBySqlId(String sqlId, Object condition)
      可変条件を持つSQL文の可変部分を構築する。
      Specified by:
      getVariableConditionSqlBySqlId in interface StatementFactory
      Parameters:
      sqlId - 下記形式のSQL_ID
      SQLリソース名 + "#" + SQL_ID)
      condition - 条件をフィールドに持つオブジェクト
      Returns:
      可変部分を構築したSQL
    • getSqlCStatement

      public SqlCStatement getSqlCStatement(String sql, Connection con, DbExecutionContext context) throws SQLException
      Description copied from interface: StatementFactory
      SqlCStatementを生成し返却する。
      Specified by:
      getSqlCStatement in interface StatementFactory
      Parameters:
      sql - SQL文
      con - Connectionオブジェクト
      context - DB実行時のコンテキスト
      Returns:
      SQL文を元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合や、データベースアクセスエラーが発生した場合
    • getSqlCStatementBySqlId

      public SqlCStatement getSqlCStatementBySqlId(String sqlId, Connection con, DbExecutionContext context) throws SQLException
      Description copied from interface: StatementFactory
      SqlCStatementを生成し返却する。
      Specified by:
      getSqlCStatementBySqlId in interface StatementFactory
      Parameters:
      sqlId - SQL_ID
      con - Connectionオブジェクト
      context - DB実行時のコンテキスト
      Returns:
      SQL_ID文を元に生成したStatementオブジェクト
      Throws:
      SQLException - SQL文が不正な場合や、データベースアクセスエラーが発生した場合
    • setSqlStatementExceptionFactory

      public void setSqlStatementExceptionFactory(SqlStatementExceptionFactory sqlStatementExceptionFactory)
      SqlStatementExceptionFactoryを設定する。
      Parameters:
      sqlStatementExceptionFactory - SqlStatementExceptionFactory
    • setFetchSize

      public void setFetchSize(String fetchSize)
      フェッチサイズを設定する。
      Parameters:
      fetchSize - フェッチサイズ
    • setQueryTimeout

      public void setQueryTimeout(int queryTimeout)
      デフォルトのクエリータイムアウト時間(単位:秒)を設定する。
      Parameters:
      queryTimeout - デフォルトのクエリータイムアウト時間(単位:秒)
      See Also:
    • setUpdatePreHookObjectHandlerList

      public void setUpdatePreHookObjectHandlerList(List<AutoPropertyHandler> updatePreHookObjectHandlerList)
      オブジェクトのフィールドへの値自動設定用ハンドラーを設定する。
      オブジェクトのフィールドの値をバインド変数に設定する事前処理として、 このハンドラーを使用してフィールドに値の自動設定を行う。
      Parameters:
      updatePreHookObjectHandlerList - オブジェクトハンドラー
    • setSqlParameterParserFactory

      public void setSqlParameterParserFactory(SqlParameterParserFactory sqlParameterParserFactory)
      名前付きバインド変数をもつSQLの解析クラスを設定する。
      Parameters:
      sqlParameterParserFactory - 名前付きバインド変数SQLの解析クラス
    • setLikeEscapeTargetCharList

      public void setLikeEscapeTargetCharList(String likeEscapeTargetCharList)
      like条件のエスケープ対象の文字リスト(カンマ区切りの文字列)を設定する。
      Parameters:
      likeEscapeTargetCharList - エスケープ文字のリスト(カンマ区切り)
    • setLikeEscapeChar

      public void setLikeEscapeChar(String likeEscapeChar)
      like条件のエスケープ文字を設定する。
      Parameters:
      likeEscapeChar - エスケープ文字
    • setSqlLoader

      public void setSqlLoader(StaticDataLoader<Map<String,String>> sqlLoader)
      SQL文をロードするクラスを設定する。
      Parameters:
      sqlLoader - SQL文をロードするクラス
    • getSql

      protected String getSql(String sqlResource)
      指定されたSQLリソースに対応するSQL文を取得する。
      Parameters:
      sqlResource - SQLリソース(SQLリソース名 + "#" + SQL_ID)
      Returns:
      SQL文
    • setObjectFieldCache

      @IgnoreProperty("\u30d5\u30a3\u30fc\u30eb\u30c9\u3067\u306f\u306a\u304f\u30d7\u30ed\u30d1\u30c6\u30a3\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3088\u3046\u4ed5\u69d8\u5909\u66f4\u3092\u884c\u3063\u305f\u305f\u3081\u672c\u30d7\u30ed\u30d1\u30c6\u30a3\u306f\u5ec3\u6b62\u3057\u307e\u3057\u305f\u3002(\u5024\u3092\u8a2d\u5b9a\u3057\u3066\u3082\u610f\u5473\u304c\u3042\u308a\u307e\u305b\u3093)") public void setObjectFieldCache(StaticDataCache<Map<String,Map<String,Object>>> objectFieldCache)
      フィールド情報保持インスタンスを設定する。
      Parameters:
      objectFieldCache - オブジェクトのフィールド情報保持インスタンス