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
-
Constructor Summary
ConstructorDescriptionBasicSqlPStatement
(String sql, PreparedStatement statement) コンストラクタ。BasicSqlPStatement
(String sql, PreparedStatement statement, List<String> nameList) コンストラクタ。
名前付きバインド変数を持つSQL用 -
Method Summary
Modifier and TypeMethodDescriptionvoid
addBatch()
void
addBatchMap
(Map<String, ?> data) バッチ実行用にMapのvalueをバインド変数にセットする。void
addBatchObject
(Object data) バッチ実行用にオブジェクトのフィールドの値をバインド変数にセットする。void
Statement.clearBatch()
のラッパー。void
void
close()
Statement.close()
のラッパー。protected BatchParameterHolder
BatchParameterHolder
インスタンスを生成する。protected ParameterHolder
ParameterHolder
インスタンスを生成する。protected SqlResultSet
createSqlResultSet
(ResultSetIterator rs, int startPos, int max) SqlResultSet
を生成する。 オーバライドすることで、生成するSqlResultSet
クラスを切り替えることができる。protected SqlResultSet
doRetrieve
(int startPos, int max) 簡易検索処理を実行する。boolean
execute()
int[]
Statement.executeBatch()
のラッパー。executeQueryByMap
(Map<String, ?> data) executeQueryByObject
(Object data) int
int
executeUpdateByMap
(Map<String, ?> data) Mapのvalueをバインド変数にセットしSQLを実行する。int
executeUpdateByObject
(Object data) オブジェクトのフィールドの値をバインド変数に設定しSQLを実行する。int
バッチサイズを取得する。Statementを生成したAppDbConnection
を取得する。int
int
Statement.getFetchSize()
のラッパー。int
Statement.getMaxRows()
のラッパー。boolean
boolean
getMoreResults
(int current) protected final Map<String,
ParameterHolder.ParamValue> 現時点でのバインドパラメータを取得する。int
Statement.getResultSet()
のラッパー。int
int
int
int
boolean
isClosed()
Statementがクローズされているか否か。protected boolean
トレースログが出力可能か判定する。retrieve()
簡易検索機能。 下記設定で検索を実行する。 読み込み開始位置 = 1 最大行数 = 無制限 本メソッドを使用するとSqlStatement.setMaxRows(int)
で事前に設定した値は無視する。retrieve
(int startPos, int max) 簡易検索機能。簡易検索機能。簡易検索機能。簡易検索機能。簡易検索機能。void
setAdditionalInfo
(String additionalInfo) 付加情報を設定する。
ここで設定された情報は、付加情報としてSQLログに出力する。void
void
setAsciiStream
(int parameterIndex, InputStream x, int length) void
setBigDecimal
(int parameterIndex, BigDecimal x) void
setBinaryStream
(int parameterIndex, InputStream x, int length) void
void
setBoolean
(int parameterIndex, boolean x) void
setByte
(int parameterIndex, byte x) void
setBytes
(int parameterIndex, byte[] x) void
setCharacterStream
(int parameterIndex, Reader reader, int length) void
void
setContext
(DbExecutionContext context) DBアクセス時の実行時のコンテキストを設定する。void
void
void
setDouble
(int parameterIndex, double x) void
setFetchDirection
(int direction) void
setFetchSize
(int rows) void
setFloat
(int parameterIndex, float x) void
setInt
(int parameterIndex, int x) void
setJdbcTransactionTimeoutHandler
(JdbcTransactionTimeoutHandler jdbcTransactionTimeoutHandler) トランザクションタイムアウトタイマーを設定する。void
setLikeEscapeChar
(char likeEscapeChar) like条件のエスケープ文字を設定する。void
setLikeEscapeTargetCharList
(char[] likeEscapeTargetCharList) like条件のエスケープ対象の文字リスト。
例:エスケープ対象の文字が、「%,%,_,_」の場合void
setLong
(int parameterIndex, long x) void
setMaxRows
(int max) void
setNull
(int parameterIndex, int sqlType) void
void
void
void
setQueryTimeout
(int seconds) void
void
setSelectOption
(SelectOption selectOption) 検索処理条件を設定する。void
setShort
(int parameterIndex, short x) void
setSqlStatementExceptionFactory
(SqlStatementExceptionFactory sqlStatementExceptionFactory) SqlStatementExceptionFactoryを設定する。void
void
void
void
setTimestamp
(int parameterIndex, Timestamp x) void
setTimestamp
(int parameterIndex, Timestamp x, Calendar cal) void
setUpdatePreHookObjectHandlerList
(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:
retrieve
in interfaceSqlPStatement
- Returns:
- 取得結果
- Throws:
SqlStatementException
- SQL実行時にSQLException
が発生した場合。
-
retrieve
Description copied from interface:SqlPStatement
簡易検索機能。- Specified by:
retrieve
in interfaceSqlPStatement
- Parameters:
startPos
- 取得開始位置max
- 取得最大件数- Returns:
- 取得結果
- Throws:
SqlStatementException
- SQL実行時にSQLException
が発生した場合。
-
doRetrieve
簡易検索処理を実行する。- Parameters:
startPos
- 検索開始位置max
- 最大取得件数- Throws:
SqlStatementException
-
createSqlResultSet
SqlResultSet
を生成する。 オーバライドすることで、生成するSqlResultSet
クラスを切り替えることができる。- Parameters:
rs
- 元となるResultSetIterator
startPos
- 読み出し開始位置max
- 読み込み最大件数- Returns:
- 生成したインスタンス
-
retrieve
簡易検索機能。 下記設定で検索を実行する。- 読み込み開始位置 = 1
- 最大行数 = 無制限
SqlStatement.setMaxRows(int)
で事前に設定した値は適用されない。- Specified by:
retrieve
in interfaceParameterizedSqlPStatement
- Parameters:
data
- 検索条件を要素にもつMap- Returns:
- 取得結果
- Throws:
SqlStatementException
- SQL実行時にSQLException
が発生した場合
-
retrieve
public SqlResultSet retrieve(int startPos, int max, Map<String, ?> data) throws SqlStatementException簡易検索機能。- Specified by:
retrieve
in interfaceParameterizedSqlPStatement
- Parameters:
startPos
- 取得開始位置max
- 取得最大件数data
- 検索条件を要素にもつMap- Returns:
- 取得結果
- Throws:
SqlStatementException
- SQL実行時にSQLException
が発生した場合
-
retrieve
簡易検索機能。 下記設定で検索を実行する。- 読み込み開始位置 = 1
- 最大行数 = 無制限
SqlStatement.setMaxRows(int)
で事前に設定した値は適用されない。- Specified by:
retrieve
in interfaceParameterizedSqlPStatement
- Parameters:
data
- 検索条件をフィールドにもつオブジェクト- Returns:
- 取得結果
- Throws:
SqlStatementException
- SQL実行時にSQLException
が発生した場合
-
retrieve
簡易検索機能。- Specified by:
retrieve
in interfaceParameterizedSqlPStatement
- Parameters:
startPos
- 取得開始位置max
- 取得最大件数data
- 検索条件をフィールドにもつオブジェクト- Returns:
- 取得結果
- Throws:
SqlStatementException
- SQL実行時にSQLException
が発生した場合
-
executeQueryByMap
- Specified by:
executeQueryByMap
in interfaceParameterizedSqlPStatement
- Parameters:
data
- 検索条件を要素にもつMap- Returns:
- 取得結果
- Throws:
SqlStatementException
- SQL実行時にSQLException
が発生した場合
-
executeQueryByObject
- Specified by:
executeQueryByObject
in interfaceParameterizedSqlPStatement
- Parameters:
data
- 検索条件をフィールドの値にもつオブジェクト- Returns:
- 取得結果
- Throws:
SqlStatementException
- SQL実行時にSQLException
が発生した場合
-
executeUpdateByMap
Mapのvalueをバインド変数にセットしSQLを実行する。- Specified by:
executeUpdateByMap
in interfaceParameterizedSqlPStatement
- Parameters:
data
- バインド変数にセットする値を保持したMap- Returns:
- 登録または、更新件数
- Throws:
SqlStatementException
- 例外発生時
-
addBatchMap
バッチ実行用にMapのvalueをバインド変数にセットする。- Specified by:
addBatchMap
in interfaceParameterizedSqlPStatement
- Parameters:
data
- バインド変数にセットする値を保持したMap
-
executeUpdateByObject
オブジェクトのフィールドの値をバインド変数に設定しSQLを実行する。- Specified by:
executeUpdateByObject
in interfaceParameterizedSqlPStatement
- Parameters:
data
- バインド変数にセットする値を保持したオブジェクト- Returns:
- 更新件数
- Throws:
SqlStatementException
- 例外発生時
-
addBatchObject
バッチ実行用にオブジェクトのフィールドの値をバインド変数にセットする。- Specified by:
addBatchObject
in interfaceParameterizedSqlPStatement
- Parameters:
data
- バインド変数にセットする値を保持したオブジェクト
-
createBatchParamHolder
BatchParameterHolder
インスタンスを生成する。- Returns:
BatchParameterHolder
インスタンス
-
createParamHolder
ParameterHolder
インスタンスを生成する。- Returns:
ParameterHolder
インスタンス
-
isTraceLogEnabled
protected boolean isTraceLogEnabled()トレースログが出力可能か判定する。- Returns:
- 出力可能な場合、真
-
executeQuery
- Specified by:
executeQuery
in interfaceSqlPStatement
- Returns:
- 取得結果
- Throws:
SqlStatementException
- SQL実行時にSQLException
が発生した場合。
-
executeUpdate
- Specified by:
executeUpdate
in interfaceSqlPStatement
- Returns:
- 更新件数
- Throws:
SqlStatementException
- SQL実行時にSQLException
が発生した場合。
-
setNull
public void setNull(int parameterIndex, int sqlType) - Specified by:
setNull
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスsqlType
- SQLタイプ(Types
)
-
setBoolean
public void setBoolean(int parameterIndex, boolean x) - Specified by:
setBoolean
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setByte
public void setByte(int parameterIndex, byte x) - Specified by:
setByte
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setShort
public void setShort(int parameterIndex, short x) - Specified by:
setShort
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setInt
public void setInt(int parameterIndex, int x) - Specified by:
setInt
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setLong
public void setLong(int parameterIndex, long x) - Specified by:
setLong
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setFloat
public void setFloat(int parameterIndex, float x) - Specified by:
setFloat
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setDouble
public void setDouble(int parameterIndex, double x) - Specified by:
setDouble
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setBigDecimal
- Specified by:
setBigDecimal
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setString
- Specified by:
setString
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setBytes
public void setBytes(int parameterIndex, byte[] x) - Specified by:
setBytes
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setDate
- Specified by:
setDate
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setTime
- Specified by:
setTime
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setTimestamp
- Specified by:
setTimestamp
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setAsciiStream
- Specified by:
setAsciiStream
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータlength
- ストリームのバイト数
-
setBinaryStream
- Specified by:
setBinaryStream
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータlength
- ストリームのバイト数
-
clearParameters
- Specified by:
clearParameters
in interfaceSqlPStatement
- Throws:
DbAccessException
-
setObject
- Specified by:
setObject
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータtargetSqlType
- SQLタイプ(java.sql.Types
)
-
setObject
- Specified by:
setObject
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
execute
- Specified by:
execute
in interfaceSqlPStatement
- Returns:
- 最初の結果が
ResultSet
オブジェクトの場合はtrue
。 更新カウントであるか、または結果がない場合はfalse
。 - Throws:
SqlStatementException
- 例外発生時
-
addBatch
- Specified by:
addBatch
in interfaceSqlPStatement
- Throws:
SqlStatementException
-
getBatchSize
public int getBatchSize()バッチサイズを取得する。- Specified by:
getBatchSize
in interfaceSqlStatement
- Returns:
- サイズ
-
setCharacterStream
- Specified by:
setCharacterStream
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスreader
- パラメータlength
- ストリームないの文字数
-
setRef
PreparedStatement.setRef(int, java.sql.Ref)
のラッパー。未実装機能- Specified by:
setRef
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setBlob
- Specified by:
setBlob
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setClob
- Specified by:
setClob
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
setArray
- Specified by:
setArray
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
getMetaData
- Specified by:
getMetaData
in interfaceSqlPStatement
- Returns:
- ResultSetMetaData
-
setDate
- Specified by:
setDate
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータcal
- ドライバが日付を作成するために使用するCalendar
オブジェクト
-
setTime
- Specified by:
setTime
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータcal
- ドライバが日付を作成するために使用するCalendar
オブジェクト
-
setTimestamp
- Specified by:
setTimestamp
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータcal
- ドライバが日付を作成するために使用するCalendar
オブジェクト
-
setNull
PreparedStatement.setNull(int, int, String)
のラッパー。未実装機能- Specified by:
setNull
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスsqlType
- SQLタイプtypeName
- SQL ユーザー定義型の完全指定の名前。 パラメータがユーザー定義型でもRef
でもない場合は無視される。
-
setURL
PreparedStatement.setURL(int, java.net.URL)
のラッパー。未実装機能- Specified by:
setURL
in interfaceSqlPStatement
- Parameters:
parameterIndex
- パラメータインデックスx
- パラメータ
-
close
public void close()Statement.close()
のラッパー。- Specified by:
close
in interfaceSqlStatement
-
getMaxRows
public int getMaxRows()Statement.getMaxRows()
のラッパー。- Specified by:
getMaxRows
in interfaceSqlStatement
- Returns:
- この Statement オブジェクトによって生成される
ResultSet
オブジェクトの現在の最大行数。ゼロは無制限を意味する。
-
setMaxRows
public void setMaxRows(int max) - Specified by:
setMaxRows
in interfaceSqlStatement
- Parameters:
max
- 新しい最大行数の制限値。ゼロは無制限を意味する。
-
getQueryTimeout
public int getQueryTimeout()- Specified by:
getQueryTimeout
in interfaceSqlStatement
- Returns:
- タイムアウト時間
-
setQueryTimeout
public void setQueryTimeout(int seconds) - Specified by:
setQueryTimeout
in interfaceSqlStatement
- Parameters:
seconds
- タイムアウト時間
-
getResultSet
Statement.getResultSet()
のラッパー。- Specified by:
getResultSet
in interfaceSqlPStatement
- Returns:
ResultSet
オブジェクトとしての現在の結果。 更新カウントであるか、結果がない場合はnull
。
-
getUpdateCount
public int getUpdateCount()- Specified by:
getUpdateCount
in interfaceSqlStatement
- Returns:
- 更新件数
-
getMoreResults
public boolean getMoreResults()- Specified by:
getMoreResults
in interfaceSqlPStatement
- Returns:
- 次の結果が
ResultSet
オブジェクトの場合はtrue
。 更新カウントであるか、結果がない場合はfalse
。
-
setFetchDirection
public void setFetchDirection(int direction) Statement.setFetchDirection(int)
のラッパー。 未実装機能- Specified by:
setFetchDirection
in interfaceSqlPStatement
- Parameters:
direction
- 行を処理する初期方向
-
getFetchDirection
public int getFetchDirection()Statement.getFetchDirection()
のラッパー。 未実装機能- Specified by:
getFetchDirection
in interfaceSqlPStatement
- Returns:
- この Statement オブジェクトから生成された結果セットのデフォルトのフェッチ方向
-
setFetchSize
public void setFetchSize(int rows) - Specified by:
setFetchSize
in interfaceSqlStatement
- Parameters:
rows
- フェッチする行数
-
getFetchSize
public int getFetchSize()Statement.getFetchSize()
のラッパー。- Specified by:
getFetchSize
in interfaceSqlStatement
- Returns:
- フェッチする行数
-
getResultSetConcurrency
public int getResultSetConcurrency()Statement.getResultSetConcurrency()
のラッパー。 未実装機能- Specified by:
getResultSetConcurrency
in interfaceSqlPStatement
- Returns:
ResultSet.CONCUR_READ_ONLY
またはResultSet.CONCUR_UPDATABLE
。
-
getResultSetType
public int getResultSetType()Statement.getResultSetType()
のラッパー。 未実装機能- Specified by:
getResultSetType
in interfaceSqlPStatement
- Returns:
ResultSet.TYPE_FORWARD_ONLY
、ResultSet.TYPE_SCROLL_INSENSITIVE
、ResultSet.TYPE_SCROLL_SENSITIVE
のうちの1つ。
-
clearBatch
public void clearBatch()Statement.clearBatch()
のラッパー。- Specified by:
clearBatch
in interfaceSqlStatement
-
executeBatch
Statement.executeBatch()
のラッパー。- Specified by:
executeBatch
in interfaceSqlStatement
- Returns:
- 更新件数
- Throws:
SqlStatementException
-
getMoreResults
public boolean getMoreResults(int current) Statement.getMoreResults()
のラッパー。 未実装機能- Specified by:
getMoreResults
in 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:
getGeneratedKeys
in interfaceSqlPStatement
- Returns:
- この Statement オブジェクトの実行で生成された自動生成キーを含む
ResultSet
オブジェクト
-
getResultSetHoldability
public int getResultSetHoldability()Statement.getResultSetHoldability()
のラッパー。 未実装機能- Specified by:
getResultSetHoldability
in interfaceSqlPStatement
- Returns:
ResultSet.HOLD_CURSORS_OVER_COMMIT
またはResultSet.CLOSE_CURSORS_AT_COMMIT
。
-
isClosed
public boolean isClosed()Statementがクローズされているか否か。- Specified by:
isClosed
in 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:
setJdbcTransactionTimeoutHandler
in interfaceSqlStatement
- Parameters:
jdbcTransactionTimeoutHandler
- トランザクションタイムアウトタイマー
-
setContext
DBアクセス時の実行時のコンテキストを設定する。- Parameters:
context
- DBアクセス時の実行時のコンテキスト
-
getConnection
Statementを生成したAppDbConnection
を取得する。- Specified by:
getConnection
in interfaceSqlStatement
- Returns:
- データベース接続オブジェクト
-
setSelectOption
検索処理条件を設定する。- Parameters:
selectOption
- 検索処理オプション
-