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 - オブジェクトのフィールド情報保持インスタンス