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
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final StringbuildAdditionalInfoForSqlID(String sqlId, String sql) 付加情報文字列を組み立てる。 この情報は、ログ出力に使用されることを想定している。protected final SqlParameterParserSqlParameterParserインスタンスを生成する。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 voidsetCommonPropsTo(BasicSqlPStatement sqlp, DbExecutionContext context) 指定されたBasicSqlPStatementに対して、 実行に必要となる共通のプロパティを設定する。voidsetFetchSize(String fetchSize) フェッチサイズを設定する。protected final void指定されたBasicSqlPStatementに対して、 LIKE条件必要なプロパティを設定する。voidsetLikeEscapeChar(String likeEscapeChar) like条件のエスケープ文字を設定する。voidsetLikeEscapeTargetCharList(String likeEscapeTargetCharList) like条件のエスケープ対象の文字リスト(カンマ区切りの文字列)を設定する。voidsetObjectFieldCache(StaticDataCache<Map<String, Map<String, Object>>> objectFieldCache) フィールド情報保持インスタンスを設定する。protected final void指定されたBasicSqlPStatementに対して、 オブジェクトのフィールドの値を扱う場合に必要なプロパティを設定する。voidsetQueryTimeout(int queryTimeout) デフォルトのクエリータイムアウト時間(単位:秒)を設定する。voidsetSqlLoader(StaticDataLoader<Map<String, String>> sqlLoader) SQL文をロードするクラスを設定する。voidsetSqlParameterParserFactory(SqlParameterParserFactory sqlParameterParserFactory) 名前付きバインド変数をもつSQLの解析クラスを設定する。voidsetSqlStatementExceptionFactory(SqlStatementExceptionFactory sqlStatementExceptionFactory) SqlStatementExceptionFactoryを設定する。voidsetUpdatePreHookObjectHandlerList(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:
getSqlPStatementin 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:
getSqlPStatementin 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:
getSqlPStatementin interfaceStatementFactory- Parameters:
sql- SQL文con- ConnectionオブジェクトautoGeneratedKeys- 自動生成キーを返すかどうかを示すフラグ。Statement.RETURN_GENERATED_KEYSまたはStatement.NO_GENERATED_KEYScontext- DB実行時のコンテキスト- Returns:
- SQL文を元に生成したStatementオブジェクト
- Throws:
SQLException- SQL文が不正な場合や、データベースアクセスエラーが発生した場合
-
getSqlPStatement
public SqlPStatement getSqlPStatement(String sql, Connection con, int[] columnIndexes, DbExecutionContext context) throws SQLException 自動生成キーの取得機能を持つSqlPStatementを生成し返却する。- Specified by:
getSqlPStatementin 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:
getSqlPStatementin 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:
getSqlPStatementBySqlIdin 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:
getParameterizedSqlPStatementin 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:
getParameterizedSqlPStatementin 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:
getParameterizedSqlPStatementBySqlIdin 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:
getParameterizedSqlPStatementBySqlIdin 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:
getParameterizedSqlPStatementBySqlIdin 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:
getVariableConditionSqlin interfaceStatementFactory- Parameters:
sql- SQL文condition- 条件をフィールドに持つオブジェクト- Returns:
- 可変部分を構築したSQL
-
getVariableConditionSqlBySqlId
可変条件を持つSQL文の可変部分を構築する。- Specified by:
getVariableConditionSqlBySqlIdin 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:StatementFactorySqlCStatementを生成し返却する。- Specified by:
getSqlCStatementin 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:StatementFactorySqlCStatementを生成し返却する。- Specified by:
getSqlCStatementBySqlIdin 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- オブジェクトのフィールド情報保持インスタンス
-