Package nablarch.core.db.statement
Class BasicStatementFactory
java.lang.Object
nablarch.core.db.statement.BasicStatementFactory
- All Implemented Interfaces:
StatementFactory
- Direct Known Subclasses:
CacheableStatementFactory
StatementFactory
の基本実装クラス。本クラスでは、下記の
SqlStatement
実装クラスを生成する。BasicSqlPStatement
- nablarch.core.db.statement.BasicSqlCStatement
- Author:
- Hisaaki Sioiri
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected final String
buildAdditionalInfoForSqlID
(String sqlId, String sql) 付加情報文字列を組み立てる。 この情報は、ログ出力に使用されることを想定している。protected final SqlParameterParser
SqlParameterParser
インスタンスを生成する。getParameterizedSqlPStatement
(String sql, Connection con, DbExecutionContext context) ParameterizedSqlPStatementを生成し返却する。getParameterizedSqlPStatement
(String sql, Connection con, DbExecutionContext context, SelectOption selectOption) ParameterizedSqlPStatementを生成し返却する。getParameterizedSqlPStatementBySqlId
(String sql, String sqlId, Connection con, DbExecutionContext context) SQL_IDからParameterizedSqlPStatement
を生成し返却する(可変条件を持つSQL用)。getParameterizedSqlPStatementBySqlId
(String sql, String sqlId, Connection con, DbExecutionContext context, SelectOption selectOption) SQL_IDからParameterizedSqlPStatement
を生成し返却する(可変条件を持つSQL用)。getParameterizedSqlPStatementBySqlId
(String sqlId, Connection con, DbExecutionContext context) SQL_IDからParameterizedSqlPStatement
を生成し返却する。protected String
指定されたSQLリソースに対応するSQL文を取得する。getSqlCStatement
(String sql, Connection con, DbExecutionContext context) SqlCStatement
を生成し返却する。getSqlCStatementBySqlId
(String sqlId, Connection con, DbExecutionContext context) SqlCStatement
を生成し返却する。getSqlPStatement
(String sql, Connection con, int[] columnIndexes, DbExecutionContext context) 自動生成キーの取得機能を持つSqlPStatement
を生成し返却する。getSqlPStatement
(String sql, Connection con, int autoGeneratedKeys, DbExecutionContext context) 自動生成キーの取得機能を持つSqlPStatement
を生成し返却する。getSqlPStatement
(String sql, Connection con, String[] columnNames, DbExecutionContext context) 自動生成キーの取得機能を持つSqlPStatement
を生成し返却する。getSqlPStatement
(String sql, Connection con, DbExecutionContext context) SqlPStatement
を生成し返却する。getSqlPStatement
(String sql, Connection con, DbExecutionContext context, SelectOption option) SqlPStatement
を生成し返却する。getSqlPStatementBySqlId
(String sqlId, Connection con, DbExecutionContext context) SQL_IDからSqlPStatement
を生成し返却する。getVariableConditionSql
(String sql, Object condition) 可変条件を持つSQL文の可変部分を構築する。getVariableConditionSqlBySqlId
(String sqlId, Object condition) 可変条件を持つSQL文の可変部分を構築する。protected final void
setCommonPropsTo
(BasicSqlPStatement sqlp, DbExecutionContext context) 指定されたBasicSqlPStatement
に対して、 実行に必要となる共通のプロパティを設定する。void
setFetchSize
(String fetchSize) フェッチサイズを設定する。protected final void
指定されたBasicSqlPStatement
に対して、 LIKE条件必要なプロパティを設定する。void
setLikeEscapeChar
(String likeEscapeChar) like条件のエスケープ文字を設定する。void
setLikeEscapeTargetCharList
(String likeEscapeTargetCharList) like条件のエスケープ対象の文字リスト(カンマ区切りの文字列)を設定する。void
setObjectFieldCache
(StaticDataCache<Map<String, Map<String, Object>>> objectFieldCache) フィールド情報保持インスタンスを設定する。protected final void
指定されたBasicSqlPStatement
に対して、 オブジェクトのフィールドの値を扱う場合に必要なプロパティを設定する。void
setQueryTimeout
(int queryTimeout) デフォルトのクエリータイムアウト時間(単位:秒)を設定する。void
setSqlLoader
(StaticDataLoader<Map<String, String>> sqlLoader) SQL文をロードするクラスを設定する。void
setSqlParameterParserFactory
(SqlParameterParserFactory sqlParameterParserFactory) 名前付きバインド変数をもつSQLの解析クラスを設定する。void
setSqlStatementExceptionFactory
(SqlStatementExceptionFactory sqlStatementExceptionFactory) SqlStatementExceptionFactoryを設定する。void
setUpdatePreHookObjectHandlerList
(List<AutoPropertyHandler> updatePreHookObjectHandlerList) オブジェクトのフィールドへの値自動設定用ハンドラーを設定する。
オブジェクトのフィールドの値をバインド変数に設定する事前処理として、 このハンドラーを使用してフィールドに値の自動設定を行う。
-
Constructor Details
-
BasicStatementFactory
public BasicStatementFactory()
-
-
Method Details
-
getSqlPStatement
public SqlPStatement getSqlPStatement(String sql, Connection con, DbExecutionContext context) throws SQLException SqlPStatement
を生成し返却する。- Specified by:
getSqlPStatement
in interfaceStatementFactory
- 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 interfaceStatementFactory
- 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 interfaceStatementFactory
- 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 interfaceStatementFactory
- 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 interfaceStatementFactory
- Parameters:
sql
- SQL文con
- ConnectionオブジェクトcolumnNames
- 挿入された行から返される列を示す列名の配列context
- DB実行時のコンテキスト- Returns:
- SQL文を元に生成したStatementオブジェクト
- Throws:
SQLException
- SQL文が不正な場合や、データベースアクセスエラーが発生した場合
-
setCommonPropsTo
指定されたBasicSqlPStatement
に対して、 実行に必要となる共通のプロパティを設定する。- Parameters:
sqlp
- 設定対象となるインスタンス。context
- DBアクセス時の実行時のコンテキスト
-
getSqlPStatementBySqlId
public SqlPStatement getSqlPStatementBySqlId(String sqlId, Connection con, DbExecutionContext context) throws SQLException SQL_IDからSqlPStatement
を生成し返却する。- Specified by:
getSqlPStatementBySqlId
in interfaceStatementFactory
- 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 interfaceStatementFactory
- 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 interfaceStatementFactory
- 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 interfaceStatementFactory
- 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 interfaceStatementFactory
- Parameters:
sql
- SQL文(可変条件構築後のSQL文)sqlId
- SQL_IDcon
- 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 interfaceStatementFactory
- Parameters:
sql
- SQL文(可変条件構築後のSQL文)sqlId
- SQL_IDcon
- Connectionオブジェクトcontext
- DB実行時のコンテキストselectOption
- 検索処理オプション- Returns:
- SQL文を元に生成したStatementオブジェクト
- Throws:
SQLException
- SQL文が不正な場合や、データベースアクセスエラーが発生した場合
-
buildAdditionalInfoForSqlID
付加情報文字列を組み立てる。 この情報は、ログ出力に使用されることを想定している。- Parameters:
sqlId
- SQL IDsql
- SQL文- Returns:
- 付加情報
- See Also:
-
setLikeConditionPropsTo
指定されたBasicSqlPStatement
に対して、 LIKE条件必要なプロパティを設定する。- Parameters:
sqlp
- 設定対象となるインスタンス
-
setObjectFieldPropsTo
指定されたBasicSqlPStatement
に対して、 オブジェクトのフィールドの値を扱う場合に必要なプロパティを設定する。- Parameters:
sqlp
- 設定対象となるインスタンス
-
createParser
SqlParameterParser
インスタンスを生成する。- Returns:
SqlParameterParser
インスタンス
-
getVariableConditionSql
可変条件を持つSQL文の可変部分を構築する。- Specified by:
getVariableConditionSql
in interfaceStatementFactory
- Parameters:
sql
- SQL文condition
- 条件をフィールドに持つオブジェクト- Returns:
- 可変部分を構築したSQL
-
getVariableConditionSqlBySqlId
可変条件を持つSQL文の可変部分を構築する。- Specified by:
getVariableConditionSqlBySqlId
in interfaceStatementFactory
- 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 interfaceStatementFactory
- 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 interfaceStatementFactory
- Parameters:
sqlId
- SQL_IDcon
- Connectionオブジェクトcontext
- DB実行時のコンテキスト- Returns:
- SQL_ID文を元に生成したStatementオブジェクト
- Throws:
SQLException
- SQL文が不正な場合や、データベースアクセスエラーが発生した場合
-
setSqlStatementExceptionFactory
public void setSqlStatementExceptionFactory(SqlStatementExceptionFactory sqlStatementExceptionFactory) SqlStatementExceptionFactoryを設定する。- Parameters:
sqlStatementExceptionFactory
- SqlStatementExceptionFactory
-
setFetchSize
フェッチサイズを設定する。- Parameters:
fetchSize
- フェッチサイズ
-
setQueryTimeout
public void setQueryTimeout(int queryTimeout) デフォルトのクエリータイムアウト時間(単位:秒)を設定する。- Parameters:
queryTimeout
- デフォルトのクエリータイムアウト時間(単位:秒)- See Also:
-
setUpdatePreHookObjectHandlerList
public void setUpdatePreHookObjectHandlerList(List<AutoPropertyHandler> updatePreHookObjectHandlerList) オブジェクトのフィールドへの値自動設定用ハンドラーを設定する。
オブジェクトのフィールドの値をバインド変数に設定する事前処理として、 このハンドラーを使用してフィールドに値の自動設定を行う。- Parameters:
updatePreHookObjectHandlerList
- オブジェクトハンドラー
-
setSqlParameterParserFactory
名前付きバインド変数をもつSQLの解析クラスを設定する。- Parameters:
sqlParameterParserFactory
- 名前付きバインド変数SQLの解析クラス
-
setLikeEscapeTargetCharList
like条件のエスケープ対象の文字リスト(カンマ区切りの文字列)を設定する。- Parameters:
likeEscapeTargetCharList
- エスケープ文字のリスト(カンマ区切り)
-
setLikeEscapeChar
like条件のエスケープ文字を設定する。- Parameters:
likeEscapeChar
- エスケープ文字
-
setSqlLoader
SQL文をロードするクラスを設定する。- Parameters:
sqlLoader
- SQL文をロードするクラス
-
getSql
指定された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
- オブジェクトのフィールド情報保持インスタンス
-