クラス RdbmsOperation
- 実装されたすべてのインターフェース:
InitializingBean
- 既知の直属サブクラス
SqlCall
,SqlOperation
このクラスとサブクラスは、org.springframework.dao
パッケージで定義されたランタイム例外をスローします(org.springframework.jdbc.core
パッケージによってスローされたものであり、このパッケージのクラスが内部 JDBC オペレーションを実行するために内部で使用します)。
サブクラスは、compile()
メソッドを呼び出す前に SQL を設定し、パラメーターを追加する必要があります。パラメーターが追加される順序は重要です。その後、適切な execute
または update
メソッドを呼び出すことができます。
- 作成者:
- Rod Johnson, Juergen Hoeller
- 関連事項:
フィールドサマリー
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明void
Bean ファクトリで使用した場合、コンパイルを保証します。protected boolean
この操作が、指定されているが実際には使用されていない追加のパラメーターを受け入れるかどうかを返します。protected void
この操作がすでにコンパイルされているかどうかを確認します。まだコンパイルされていない場合は、遅延してコンパイルします。final void
compile()
このクエリをコンパイルします。protected abstract void
サブクラスは、独自のコンパイルを実行するためにこのテンプレートメソッドを実装する必要があります。void
declareParameter
(SqlParameter param) この操作のパラメーターを宣言します。protected ListSE<SqlParameter>
宣言されたSqlParameter
オブジェクトのリストを返します。StringSE[]
自動生成されたキーの列名を返します。この操作オブジェクトが使用するJdbcTemplate
を返します。int
ステートメントが特定の型の ResultSet を返すかどうかを返します。getSql()
サブクラスは、必要に応じてこれをオーバーライドして動的 SQL を提供できますが、SQL は通常、setSql(java.lang.String)
メソッドを呼び出すか、サブクラスコンストラクターで設定されます。boolean
この操作は「コンパイル」されていますか? JDO の場合と同様に、コンパイルとは、操作が完全に構成され、使用する準備ができていることを意味します。boolean
ステートメントが自動生成キーを返すことができるかどうかを返します。boolean
ステートメントが更新可能な ResultSets を返すかどうかを返します。protected StringSE
実際に使用するために構成済み SQL を解決します。void
setDataSource
(DataSourceSE dataSource) 接続を取得する JDBCDataSource
SE を設定します。void
setFetchSize
(int fetchSize) この RDBMS 操作のフェッチサイズを設定します。void
setGeneratedKeysColumnNames
(StringSE... names) 自動生成されたキーの列名を設定します。void
setJdbcTemplate
(JdbcTemplate jdbcTemplate) void
setMaxRows
(int maxRows) この RDBMS 操作の最大行数を設定します。void
setParameters
(SqlParameter... parameters) 1 つ以上の宣言されたパラメーターを追加します。void
setQueryTimeout
(int queryTimeout) この RDBMS 操作が実行するステートメントのクエリタイムアウトを設定します。void
setResultSetType
(int resultSetType) 特定の型の ResultSet を返すステートメントを使用するかどうかを設定します。void
setReturnGeneratedKeys
(boolean returnGeneratedKeys) 準備されたステートメントが自動生成キーを返すことができるかどうかを設定します。void
この操作によって実行される SQL を設定します。void
setTypes
(int[] types) java.sql.Types
クラスで定義されている SQL 型のみを指定して、匿名パラメーターを追加します。void
setUpdatableResults
(boolean updatableResults) 更新可能な ResultSets を返すことができるステートメントを使用するかどうかを設定します。protected boolean
この種類の操作で BLOB/CLOB パラメーターがサポートされているかどうかを返します。protected void
validateNamedParameters
(MapSE<StringSE, ?> parameters) 宣言されたパラメーターに基づいて、execute メソッドに渡された名前付きパラメーターを検証します。protected void
validateParameters
(ObjectSE[] parameters) 宣言されたパラメーターに基づいて、execute メソッドに渡されたパラメーターを検証します。
フィールドの詳細
logger
サブクラスで利用可能なロガー。
コンストラクターの詳細
RdbmsOperation
public RdbmsOperation()
メソッドの詳細
setJdbcTemplate
複数のRdbmsOperations
で同じJdbcTemplate
を使用する場合に、より一般的に使用されるsetDataSource(javax.sql.DataSource)
の代替。これは、JdbcTemplate
にSQLExceptionTranslator
などの特別な構成があり、再利用する場合に適しています。getJdbcTemplate
この操作オブジェクトが使用するJdbcTemplate
を返します。setDataSource
接続を取得する JDBCDataSource
SE を設定します。setFetchSize
public void setFetchSize(int fetchSize) この RDBMS 操作のフェッチサイズを設定します。これは、大きな結果セットを処理する場合に重要です。これをデフォルト値よりも高く設定すると、処理速度が向上しますが、メモリが消費されます。これを低く設定すると、アプリケーションによって決して読み取られない行データの転送を回避できます。デフォルトは -1 で、ドライバーのデフォルトを使用することを示します。
setMaxRows
public void setMaxRows(int maxRows) この RDBMS 操作の最大行数を設定します。これは、データベースまたは JDBC ドライバーで結果セット全体を読み取って保持することを避けるために、大規模な結果セットのサブセットを処理する場合に重要です。デフォルトは -1 で、ドライバーのデフォルトを使用することを示します。
setQueryTimeout
public void setQueryTimeout(int queryTimeout) この RDBMS 操作が実行するステートメントのクエリタイムアウトを設定します。デフォルトは -1 で、JDBC ドライバーのデフォルトを使用することを示します。
メモ: ここで指定されたタイムアウトは、トランザクションレベルで指定されたタイムアウトを持つトランザクション内で実行すると、残りのトランザクションタイムアウトによってオーバーライドされます。
setResultSetType
public void setResultSetType(int resultSetType) 特定の型の ResultSet を返すステートメントを使用するかどうかを設定します。- パラメーター:
resultSetType
- ResultSet 型- 関連事項:
getResultSetType
public int getResultSetType()ステートメントが特定の型の ResultSet を返すかどうかを返します。setUpdatableResults
public void setUpdatableResults(boolean updatableResults) 更新可能な ResultSets を返すことができるステートメントを使用するかどうかを設定します。isUpdatableResults
public boolean isUpdatableResults()ステートメントが更新可能な ResultSets を返すかどうかを返します。setReturnGeneratedKeys
public void setReturnGeneratedKeys(boolean returnGeneratedKeys) 準備されたステートメントが自動生成キーを返すことができるかどうかを設定します。isReturnGeneratedKeys
public boolean isReturnGeneratedKeys()ステートメントが自動生成キーを返すことができるかどうかを返します。setGeneratedKeysColumnNames
自動生成されたキーの列名を設定します。getGeneratedKeysColumnNames
自動生成されたキーの列名を返します。setSql
この操作によって実行される SQL を設定します。getSql
サブクラスは、必要に応じてこれをオーバーライドして動的 SQL を提供できますが、SQL は通常、setSql(java.lang.String)
メソッドを呼び出すか、サブクラスコンストラクターで設定されます。resolveSql
実際に使用するために構成済み SQL を解決します。- 戻り値:
- SQL (非
null
) - 導入:
- 5.0
setTypes
java.sql.Types
クラスで定義されている SQL 型のみを指定して、匿名パラメーターを追加します。パラメーターの順序は重要です。このメソッドは、
declareParameter(org.springframework.jdbc.core.SqlParameter)
メソッドの代替であり、通常は推奨されます。- パラメーター:
types
-java.sql.Types
クラスで定義されている SQL 型の配列- 例外:
InvalidDataAccessApiUsageException
- 操作がすでにコンパイルされている場合
declareParameter
この操作のパラメーターを宣言します。位置パラメーターを使用する場合、このメソッドが呼び出される順序は重要です。ここで、名前付き SqlParameter オブジェクトで名前付きパラメーターを使用する場合は重要ではありません。ここで、名前のないパラメーターを名前のない SqlParameter オブジェクトと組み合わせて使用する場合も、重要です。
- パラメーター:
param
- 追加する SqlParameter これは、SQL 型と(オプションで)パラメーターの名前を指定します。ここでは通常、SqlParameter
クラス自体を使用し、そのサブクラスは使用しないことに注意してください。- 例外:
InvalidDataAccessApiUsageException
- 操作がすでにコンパイルされているため、それ以上構成できない場合
setParameters
1 つ以上の宣言されたパラメーターを追加します。Bean ファクトリで使用される場合、この操作を構成するために使用されます。各パラメーターは、SQL 型と(オプションで)パラメーターの名前を指定します。- パラメーター:
parameters
- 宣言されたSqlParameter
オブジェクトを含む配列- 関連事項:
declaredParameters
getDeclaredParameters
宣言されたSqlParameter
オブジェクトのリストを返します。afterPropertiesSet
public void afterPropertiesSet()Bean ファクトリで使用した場合、コンパイルを保証します。- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
compile
このクエリをコンパイルします。コンパイルの後続の試行を無視します。- 例外:
InvalidDataAccessApiUsageException
- オブジェクトが正しく初期化されていない場合(DataSource が提供されていない場合など)
isCompiled
public boolean isCompiled()この操作は「コンパイル」されていますか? JDO の場合と同様に、コンパイルとは、操作が完全に構成され、使用する準備ができていることを意味します。コンパイルの正確な意味は、サブクラスによって異なります。- 戻り値:
- この操作がコンパイルされ、使用する準備ができているかどうか
checkCompiled
protected void checkCompiled()この操作がすでにコンパイルされているかどうかを確認します。まだコンパイルされていない場合は、遅延してコンパイルします。validateParameters
によって自動的に呼び出されます。validateParameters
protected void validateParameters(@Nullable ObjectSE[] parameters) throws InvalidDataAccessApiUsageException 宣言されたパラメーターに基づいて、execute メソッドに渡されたパラメーターを検証します。サブクラスは、すべてのexecuteQuery()
またはupdate()
メソッドの前にこのメソッドを呼び出す必要があります。- パラメーター:
parameters
- 提供されるパラメーター (null
の場合があります)- 例外:
InvalidDataAccessApiUsageException
- パラメーターが無効な場合
validateNamedParameters
protected void validateNamedParameters(@Nullable MapSE<StringSE, ?> parameters) throws InvalidDataAccessApiUsageException宣言されたパラメーターに基づいて、execute メソッドに渡された名前付きパラメーターを検証します。サブクラスは、すべてのexecuteQuery()
またはupdate()
メソッドの前にこのメソッドを呼び出す必要があります。- パラメーター:
parameters
- 提供されるパラメーターマップ (null
の場合があります)- 例外:
InvalidDataAccessApiUsageException
- パラメーターが無効な場合
compileInternal
サブクラスは、独自のコンパイルを実行するためにこのテンプレートメソッドを実装する必要があります。この基本クラスのコンパイルが完了した後に呼び出されます。サブクラスは、SQL と DataSource が提供されていると想定できます。
- 例外:
InvalidDataAccessApiUsageException
- サブクラスが適切に構成されていない場合
supportsLobParameters
protected boolean supportsLobParameters()この種類の操作で BLOB/CLOB パラメーターがサポートされているかどうかを返します。デフォルトは
true
です。allowsUnusedParameters
protected boolean allowsUnusedParameters()この操作が、指定されているが実際には使用されていない追加のパラメーターを受け入れるかどうかを返します。特にパラメーターマップに適用されます。デフォルトは
false
です。- 関連事項: