Package nablarch.core.db.statement
Class BasicSqlPStatement
java.lang.Object
nablarch.core.db.statement.BasicSqlPStatement
- All Implemented Interfaces:
ParameterizedSqlPStatement,SqlPStatement,SqlStatement
- Direct Known Subclasses:
BasicSqlCStatement,CacheableSqlPStatement
PreparedStatementのをラップしたクラス。本クラスは、JDK5で実装済みのインタフェースのみを提供する。
- Author:
- Hisaaki Sioiri
- See Also:
-
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionBasicSqlPStatement(String sql, PreparedStatement statement) コンストラクタ。BasicSqlPStatement(String sql, PreparedStatement statement, List<String> nameList) コンストラクタ。
名前付きバインド変数を持つSQL用 -
Method Summary
Modifier and TypeMethodDescriptionvoidaddBatch()voidaddBatchMap(Map<String, ?> data) バッチ実行用にMapのvalueをバインド変数にセットする。voidaddBatchObject(Object data) バッチ実行用にオブジェクトのフィールドの値をバインド変数にセットする。voidStatement.clearBatch()のラッパー。voidvoidclose()Statement.close()のラッパー。protected BatchParameterHolderBatchParameterHolderインスタンスを生成する。protected ParameterHolderParameterHolderインスタンスを生成する。protected SqlResultSetcreateSqlResultSet(ResultSetIterator rs, int startPos, int max) SqlResultSetを生成する。 オーバライドすることで、生成するSqlResultSetクラスを切り替えることができる。protected SqlResultSetdoRetrieve(int startPos, int max) 簡易検索処理を実行する。booleanexecute()int[]Statement.executeBatch()のラッパー。executeQueryByMap(Map<String, ?> data) executeQueryByObject(Object data) intintexecuteUpdateByMap(Map<String, ?> data) Mapのvalueをバインド変数にセットしSQLを実行する。intexecuteUpdateByObject(Object data) オブジェクトのフィールドの値をバインド変数に設定しSQLを実行する。intバッチサイズを取得する。Statementを生成したAppDbConnectionを取得する。intintStatement.getFetchSize()のラッパー。intStatement.getMaxRows()のラッパー。booleanbooleangetMoreResults(int current) protected final Map<String,ParameterHolder.ParamValue> 現時点でのバインドパラメータを取得する。intStatement.getResultSet()のラッパー。intintintintbooleanisClosed()Statementがクローズされているか否か。protected booleanトレースログが出力可能か判定する。retrieve()簡易検索機能。 下記設定で検索を実行する。 読み込み開始位置 = 1 最大行数 = 無制限 本メソッドを使用するとSqlStatement.setMaxRows(int)で事前に設定した値は無視する。retrieve(int startPos, int max) 簡易検索機能。簡易検索機能。簡易検索機能。簡易検索機能。簡易検索機能。voidsetAdditionalInfo(String additionalInfo) 付加情報を設定する。
ここで設定された情報は、付加情報としてSQLログに出力する。voidvoidsetAsciiStream(int parameterIndex, InputStream x, int length) voidsetBigDecimal(int parameterIndex, BigDecimal x) voidsetBinaryStream(int parameterIndex, InputStream x, int length) voidvoidsetBoolean(int parameterIndex, boolean x) voidsetByte(int parameterIndex, byte x) voidsetBytes(int parameterIndex, byte[] x) voidsetCharacterStream(int parameterIndex, Reader reader, int length) voidvoidsetContext(DbExecutionContext context) DBアクセス時の実行時のコンテキストを設定する。voidvoidvoidsetDouble(int parameterIndex, double x) voidsetFetchDirection(int direction) voidsetFetchSize(int rows) voidsetFloat(int parameterIndex, float x) voidsetInt(int parameterIndex, int x) voidsetJdbcTransactionTimeoutHandler(JdbcTransactionTimeoutHandler jdbcTransactionTimeoutHandler) トランザクションタイムアウトタイマーを設定する。voidsetLikeEscapeChar(char likeEscapeChar) like条件のエスケープ文字を設定する。voidsetLikeEscapeTargetCharList(char[] likeEscapeTargetCharList) like条件のエスケープ対象の文字リスト。
例:エスケープ対象の文字が、「%,%,_,_」の場合voidsetLong(int parameterIndex, long x) voidsetMaxRows(int max) voidsetNull(int parameterIndex, int sqlType) voidvoidvoidvoidsetQueryTimeout(int seconds) voidvoidsetSelectOption(SelectOption selectOption) 検索処理条件を設定する。voidsetShort(int parameterIndex, short x) voidsetSqlStatementExceptionFactory(SqlStatementExceptionFactory sqlStatementExceptionFactory) SqlStatementExceptionFactoryを設定する。voidvoidvoidvoidsetTimestamp(int parameterIndex, Timestamp x) voidsetTimestamp(int parameterIndex, Timestamp x, Calendar cal) voidsetUpdatePreHookObjectHandlerList(List<AutoPropertyHandler> updatePreHookObjectHandlerList) オブジェクトのフィールドへの値自動設定用ハンドラーを設定する。
オブジェクトのフィールドの値をバインド変数に設定する事前処理として、 このハンドラーを使用してフィールドに値の自動設定を行う。void
-
Field Details
-
paramHolder
パラメータホルダー
-
-
Constructor Details
-
BasicSqlPStatement
コンストラクタ。- Parameters:
sql- SQL文statement- PreparedStatement
-
BasicSqlPStatement
コンストラクタ。
名前付きバインド変数を持つSQL用- Parameters:
sql- SQL文statement- PreparedStatementnameList- 名前付き変数のリスト
-
-
Method Details
-
retrieve
簡易検索機能。 下記設定で検索を実行する。- 読み込み開始位置 = 1
- 最大行数 = 無制限
SqlStatement.setMaxRows(int)で事前に設定した値は無視する。- Specified by:
retrievein interfaceSqlPStatement- Returns:
- 取得結果
- Throws:
SqlStatementException- SQL実行時にSQLExceptionが発生した場合。
-
retrieve
Description copied from interface:SqlPStatement簡易検索機能。- Specified by:
retrievein interfaceSqlPStatement- Parameters:
startPos- 取得開始位置max- 取得最大件数- Returns:
- 取得結果
- Throws:
SqlStatementException- SQL実行時にSQLExceptionが発生した場合。
-
doRetrieve
簡易検索処理を実行する。- Parameters:
startPos- 検索開始位置max- 最大取得件数- Throws:
SqlStatementException
-
createSqlResultSet
SqlResultSetを生成する。 オーバライドすることで、生成するSqlResultSetクラスを切り替えることができる。- Parameters:
rs- 元となるResultSetIteratorstartPos- 読み出し開始位置max- 読み込み最大件数- Returns:
- 生成したインスタンス
-
retrieve
簡易検索機能。 下記設定で検索を実行する。- 読み込み開始位置 = 1
- 最大行数 = 無制限
SqlStatement.setMaxRows(int)で事前に設定した値は適用されない。- Specified by:
retrievein interfaceParameterizedSqlPStatement- Parameters:
data- 検索条件を要素にもつMap- Returns:
- 取得結果
- Throws:
SqlStatementException- SQL実行時にSQLExceptionが発生した場合
-
retrieve
public SqlResultSet retrieve(int startPos, int max, Map<String, ?> data) throws SqlStatementException簡易検索機能。- Specified by:
retrievein interfaceParameterizedSqlPStatement- Parameters:
startPos- 取得開始位置max- 取得最大件数data- 検索条件を要素にもつMap- Returns:
- 取得結果
- Throws:
SqlStatementException- SQL実行時にSQLExceptionが発生した場合
-
retrieve
簡易検索機能。 下記設定で検索を実行する。- 読み込み開始位置 = 1
- 最大行数 = 無制限
SqlStatement.setMaxRows(int)で事前に設定した値は適用されない。- Specified by:
retrievein interfaceParameterizedSqlPStatement- Parameters:
data- 検索条件をフィールドにもつオブジェクト- Returns:
- 取得結果
- Throws:
SqlStatementException- SQL実行時にSQLExceptionが発生した場合
-
retrieve
簡易検索機能。- Specified by:
retrievein interfaceParameterizedSqlPStatement- Parameters:
startPos- 取得開始位置max- 取得最大件数data- 検索条件をフィールドにもつオブジェクト- Returns:
- 取得結果
- Throws:
SqlStatementException- SQL実行時にSQLExceptionが発生した場合
-
executeQueryByMap
- Specified by:
executeQueryByMapin interfaceParameterizedSqlPStatement- Parameters:
data- 検索条件を要素にもつMap- Returns:
- 取得結果
- Throws:
SqlStatementException- SQL実行時にSQLExceptionが発生した場合
-
executeQueryByObject
- Specified by:
executeQueryByObjectin interfaceParameterizedSqlPStatement- Parameters:
data- 検索条件をフィールドの値にもつオブジェクト- Returns:
- 取得結果
- Throws:
SqlStatementException- SQL実行時にSQLExceptionが発生した場合
-
executeUpdateByMap
Mapのvalueをバインド変数にセットしSQLを実行する。- Specified by:
executeUpdateByMapin interfaceParameterizedSqlPStatement- Parameters:
data- バインド変数にセットする値を保持したMap- Returns:
- 登録または、更新件数
- Throws:
SqlStatementException- 例外発生時
-
addBatchMap
バッチ実行用にMapのvalueをバインド変数にセットする。- Specified by:
addBatchMapin interfaceParameterizedSqlPStatement- Parameters:
data- バインド変数にセットする値を保持したMap
-
executeUpdateByObject
オブジェクトのフィールドの値をバインド変数に設定しSQLを実行する。- Specified by:
executeUpdateByObjectin interfaceParameterizedSqlPStatement- Parameters:
data- バインド変数にセットする値を保持したオブジェクト- Returns:
- 更新件数
- Throws:
SqlStatementException- 例外発生時
-
addBatchObject
バッチ実行用にオブジェクトのフィールドの値をバインド変数にセットする。- Specified by:
addBatchObjectin interfaceParameterizedSqlPStatement- Parameters:
data- バインド変数にセットする値を保持したオブジェクト
-
createBatchParamHolder
BatchParameterHolderインスタンスを生成する。- Returns:
BatchParameterHolderインスタンス
-
createParamHolder
ParameterHolderインスタンスを生成する。- Returns:
ParameterHolderインスタンス
-
isTraceLogEnabled
protected boolean isTraceLogEnabled()トレースログが出力可能か判定する。- Returns:
- 出力可能な場合、真
-
executeQuery
- Specified by:
executeQueryin interfaceSqlPStatement- Returns:
- 取得結果
- Throws:
SqlStatementException- SQL実行時にSQLExceptionが発生した場合。
-
executeUpdate
- Specified by:
executeUpdatein interfaceSqlPStatement- Returns:
- 更新件数
- Throws:
SqlStatementException- SQL実行時にSQLExceptionが発生した場合。
-
setNull
public void setNull(int parameterIndex, int sqlType) - Specified by:
setNullin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスsqlType- SQLタイプ(Types)
-
setBoolean
public void setBoolean(int parameterIndex, boolean x) - Specified by:
setBooleanin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setByte
public void setByte(int parameterIndex, byte x) - Specified by:
setBytein interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setShort
public void setShort(int parameterIndex, short x) - Specified by:
setShortin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setInt
public void setInt(int parameterIndex, int x) - Specified by:
setIntin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setLong
public void setLong(int parameterIndex, long x) - Specified by:
setLongin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setFloat
public void setFloat(int parameterIndex, float x) - Specified by:
setFloatin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setDouble
public void setDouble(int parameterIndex, double x) - Specified by:
setDoublein interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setBigDecimal
- Specified by:
setBigDecimalin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setString
- Specified by:
setStringin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setBytes
public void setBytes(int parameterIndex, byte[] x) - Specified by:
setBytesin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setDate
- Specified by:
setDatein interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setTime
- Specified by:
setTimein interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setTimestamp
- Specified by:
setTimestampin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setAsciiStream
- Specified by:
setAsciiStreamin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータlength- ストリームのバイト数
-
setBinaryStream
- Specified by:
setBinaryStreamin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータlength- ストリームのバイト数
-
clearParameters
- Specified by:
clearParametersin interfaceSqlPStatement- Throws:
DbAccessException
-
setObject
- Specified by:
setObjectin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータtargetSqlType- SQLタイプ(java.sql.Types)
-
setObject
- Specified by:
setObjectin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
execute
- Specified by:
executein interfaceSqlPStatement- Returns:
- 最初の結果が
ResultSetオブジェクトの場合はtrue。 更新カウントであるか、または結果がない場合はfalse。 - Throws:
SqlStatementException- 例外発生時
-
addBatch
- Specified by:
addBatchin interfaceSqlPStatement- Throws:
SqlStatementException
-
getBatchSize
public int getBatchSize()バッチサイズを取得する。- Specified by:
getBatchSizein interfaceSqlStatement- Returns:
- サイズ
-
setCharacterStream
- Specified by:
setCharacterStreamin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスreader- パラメータlength- ストリームないの文字数
-
setRef
PreparedStatement.setRef(int, java.sql.Ref)のラッパー。未実装機能- Specified by:
setRefin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setBlob
- Specified by:
setBlobin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setClob
- Specified by:
setClobin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
setArray
- Specified by:
setArrayin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
getMetaData
- Specified by:
getMetaDatain interfaceSqlPStatement- Returns:
- ResultSetMetaData
-
setDate
- Specified by:
setDatein interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータcal- ドライバが日付を作成するために使用するCalendarオブジェクト
-
setTime
- Specified by:
setTimein interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータcal- ドライバが日付を作成するために使用するCalendarオブジェクト
-
setTimestamp
- Specified by:
setTimestampin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータcal- ドライバが日付を作成するために使用するCalendarオブジェクト
-
setNull
PreparedStatement.setNull(int, int, String)のラッパー。未実装機能- Specified by:
setNullin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスsqlType- SQLタイプtypeName- SQL ユーザー定義型の完全指定の名前。 パラメータがユーザー定義型でもRefでもない場合は無視される。
-
setURL
PreparedStatement.setURL(int, java.net.URL)のラッパー。未実装機能- Specified by:
setURLin interfaceSqlPStatement- Parameters:
parameterIndex- パラメータインデックスx- パラメータ
-
close
public void close()Statement.close()のラッパー。- Specified by:
closein interfaceSqlStatement
-
getMaxRows
public int getMaxRows()Statement.getMaxRows()のラッパー。- Specified by:
getMaxRowsin interfaceSqlStatement- Returns:
- この Statement オブジェクトによって生成される
ResultSetオブジェクトの現在の最大行数。ゼロは無制限を意味する。
-
setMaxRows
public void setMaxRows(int max) - Specified by:
setMaxRowsin interfaceSqlStatement- Parameters:
max- 新しい最大行数の制限値。ゼロは無制限を意味する。
-
getQueryTimeout
public int getQueryTimeout()- Specified by:
getQueryTimeoutin interfaceSqlStatement- Returns:
- タイムアウト時間
-
setQueryTimeout
public void setQueryTimeout(int seconds) - Specified by:
setQueryTimeoutin interfaceSqlStatement- Parameters:
seconds- タイムアウト時間
-
getResultSet
Statement.getResultSet()のラッパー。- Specified by:
getResultSetin interfaceSqlPStatement- Returns:
ResultSetオブジェクトとしての現在の結果。 更新カウントであるか、結果がない場合はnull。
-
getUpdateCount
public int getUpdateCount()- Specified by:
getUpdateCountin interfaceSqlStatement- Returns:
- 更新件数
-
getMoreResults
public boolean getMoreResults()- Specified by:
getMoreResultsin interfaceSqlPStatement- Returns:
- 次の結果が
ResultSetオブジェクトの場合はtrue。 更新カウントであるか、結果がない場合はfalse。
-
setFetchDirection
public void setFetchDirection(int direction) Statement.setFetchDirection(int)のラッパー。 未実装機能- Specified by:
setFetchDirectionin interfaceSqlPStatement- Parameters:
direction- 行を処理する初期方向
-
getFetchDirection
public int getFetchDirection()Statement.getFetchDirection()のラッパー。 未実装機能- Specified by:
getFetchDirectionin interfaceSqlPStatement- Returns:
- この Statement オブジェクトから生成された結果セットのデフォルトのフェッチ方向
-
setFetchSize
public void setFetchSize(int rows) - Specified by:
setFetchSizein interfaceSqlStatement- Parameters:
rows- フェッチする行数
-
getFetchSize
public int getFetchSize()Statement.getFetchSize()のラッパー。- Specified by:
getFetchSizein interfaceSqlStatement- Returns:
- フェッチする行数
-
getResultSetConcurrency
public int getResultSetConcurrency()Statement.getResultSetConcurrency()のラッパー。 未実装機能- Specified by:
getResultSetConcurrencyin interfaceSqlPStatement- Returns:
ResultSet.CONCUR_READ_ONLYまたはResultSet.CONCUR_UPDATABLE。
-
getResultSetType
public int getResultSetType()Statement.getResultSetType()のラッパー。 未実装機能- Specified by:
getResultSetTypein interfaceSqlPStatement- Returns:
ResultSet.TYPE_FORWARD_ONLY、ResultSet.TYPE_SCROLL_INSENSITIVE、ResultSet.TYPE_SCROLL_SENSITIVEのうちの1つ。
-
clearBatch
public void clearBatch()Statement.clearBatch()のラッパー。- Specified by:
clearBatchin interfaceSqlStatement
-
executeBatch
Statement.executeBatch()のラッパー。- Specified by:
executeBatchin interfaceSqlStatement- Returns:
- 更新件数
- Throws:
SqlStatementException
-
getMoreResults
public boolean getMoreResults(int current) Statement.getMoreResults()のラッパー。 未実装機能- Specified by:
getMoreResultsin interfaceSqlPStatement- Parameters:
current- getResultSet メソッドを使用して取得した、 現在のResultSetオブジェクトに生じる状態を示す Statement 定数。Statement.CLOSE_CURRENT_RESULT、Statement.KEEP_CURRENT_RESULT、Statement.CLOSE_ALL_RESULTSのうちの 1 つ。- Returns:
- 次の結果が
ResultSetオブジェクトの場合はtrue。 更新カウントであるか、または結果がない場合はfalse。
-
getGeneratedKeys
- Specified by:
getGeneratedKeysin interfaceSqlPStatement- Returns:
- この Statement オブジェクトの実行で生成された自動生成キーを含む
ResultSetオブジェクト
-
getResultSetHoldability
public int getResultSetHoldability()Statement.getResultSetHoldability()のラッパー。 未実装機能- Specified by:
getResultSetHoldabilityin interfaceSqlPStatement- Returns:
ResultSet.HOLD_CURSORS_OVER_COMMITまたはResultSet.CLOSE_CURSORS_AT_COMMIT。
-
isClosed
public boolean isClosed()Statementがクローズされているか否か。- Specified by:
isClosedin interfaceSqlStatement- Returns:
- このStatementオブジェクトがクローズされている場合は
true、まだオープンしている場合はfalse
-
getParameters
現時点でのバインドパラメータを取得する。- Returns:
- バインドパラメータ
-
setSqlStatementExceptionFactory
public void setSqlStatementExceptionFactory(SqlStatementExceptionFactory sqlStatementExceptionFactory) SqlStatementExceptionFactoryを設定する。- Parameters:
sqlStatementExceptionFactory- SqlStatementExceptionFactory
-
setUpdatePreHookObjectHandlerList
public void setUpdatePreHookObjectHandlerList(List<AutoPropertyHandler> updatePreHookObjectHandlerList) オブジェクトのフィールドへの値自動設定用ハンドラーを設定する。
オブジェクトのフィールドの値をバインド変数に設定する事前処理として、 このハンドラーを使用してフィールドに値の自動設定を行う。- Parameters:
updatePreHookObjectHandlerList- オブジェクトハンドラー
-
setLikeEscapeChar
public void setLikeEscapeChar(char likeEscapeChar) like条件のエスケープ文字を設定する。- Parameters:
likeEscapeChar- like条件のエスケープ文字
-
setLikeEscapeTargetCharList
public void setLikeEscapeTargetCharList(char[] likeEscapeTargetCharList) like条件のエスケープ対象の文字リスト。
例:エスケープ対象の文字が、「%,%,_,_」の場合
char[] escapeChar = {'%', '%', '_', '_'}; setLikeEscapeTargetCharList(escapeChar);- Parameters:
likeEscapeTargetCharList- エスケープ対象の文字を表す正規表現
-
setAdditionalInfo
付加情報を設定する。
ここで設定された情報は、付加情報としてSQLログに出力する。- Parameters:
additionalInfo- ログ出力用の補足情報
-
setJdbcTransactionTimeoutHandler
public void setJdbcTransactionTimeoutHandler(JdbcTransactionTimeoutHandler jdbcTransactionTimeoutHandler) トランザクションタイムアウトタイマーを設定する。 本設定値を省略した場合、トランザクションのタイムアウト処理は行われない。- Specified by:
setJdbcTransactionTimeoutHandlerin interfaceSqlStatement- Parameters:
jdbcTransactionTimeoutHandler- トランザクションタイムアウトタイマー
-
setContext
DBアクセス時の実行時のコンテキストを設定する。- Parameters:
context- DBアクセス時の実行時のコンテキスト
-
getConnection
Statementを生成したAppDbConnectionを取得する。- Specified by:
getConnectionin interfaceSqlStatement- Returns:
- データベース接続オブジェクト
-
setSelectOption
検索処理条件を設定する。- Parameters:
selectOption- 検索処理オプション
-