クラス RdbmsOperation
- 実装されているすべてのインターフェース:
InitializingBean
- 既知の直属サブクラス
SqlCall,SqlOperation
このクラスとサブクラスは、org.springframework.dao パッケージで定義されたランタイム例外をスローします(org.springframework.jdbc.core パッケージによってスローされたものであり、このパッケージのクラスが内部 JDBC オペレーションを実行するために内部で使用します)。
サブクラスは、compile() メソッドを呼び出す前に SQL を設定し、パラメーターを追加する必要があります。パラメーターが追加される順序は重要です。その後、適切な execute または update メソッドを呼び出すことができます。
- 作成者:
- Rod Johnson, Juergen Hoeller
- 関連事項:
フィールドのサマリー
フィールドコンストラクターの概要
コンストラクターメソッドのサマリー
修飾子と型メソッド説明voidBean ファクトリで使用した場合、コンパイルを保証します。protected booleanこの操作が、指定されているが実際には使用されていない追加のパラメーターを受け入れるかどうかを返します。protected voidこの操作がすでにコンパイルされているかどうかを確認します。まだコンパイルされていない場合は、遅延してコンパイルします。final voidcompile()このクエリをコンパイルします。protected abstract voidサブクラスは、独自のコンパイルを実行するためにこのテンプレートメソッドを実装する必要があります。voiddeclareParameter(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 を解決します。voidsetDataSource(DataSourceSE dataSource) 接続を取得する JDBCDataSourceSE を設定します。voidsetFetchSize(int fetchSize) この RDBMS 操作のフェッチサイズを設定します。voidsetGeneratedKeysColumnNames(StringSE... names) 自動生成されたキーの列名を設定します。voidsetJdbcTemplate(JdbcTemplate jdbcTemplate) voidsetMaxRows(int maxRows) この RDBMS 操作の最大行数を設定します。voidsetParameters(SqlParameter... parameters) 1 つ以上の宣言されたパラメーターを追加します。voidsetQueryTimeout(int queryTimeout) この RDBMS 操作が実行するステートメントのクエリタイムアウトを設定します。voidsetResultSetType(int resultSetType) 特定の型の ResultSet を返すステートメントを使用するかどうかを設定します。voidsetReturnGeneratedKeys(boolean returnGeneratedKeys) 準備されたステートメントが自動生成キーを返すことができるかどうかを設定します。voidこの操作によって実行される SQL を設定します。voidsetTypes(int[] types) java.sql.Typesクラスで定義されている SQL 型のみを指定して、匿名パラメーターを追加します。voidsetUpdatableResults(boolean updatableResults) 更新可能な ResultSets を返すことができるステートメントを使用するかどうかを設定します。protected booleanこの種類の操作で BLOB/CLOB パラメーターがサポートされているかどうかを返します。protected voidvalidateNamedParameters(MapSE<StringSE, ?> parameters) 宣言されたパラメーターに基づいて、execute メソッドに渡された名前付きパラメーターを検証します。protected voidvalidateParameters(ObjectSE[] parameters) 宣言されたパラメーターに基づいて、execute メソッドに渡されたパラメーターを検証します。
フィールドの詳細
logger
サブクラスで利用可能なロガー。
コンストラクターの詳細
RdbmsOperation
public RdbmsOperation()
メソッドの詳細
setJdbcTemplate
複数のRdbmsOperationsで同じJdbcTemplateを使用する場合に、より一般的に使用されるsetDataSource(javax.sql.DataSource)の代替。これは、JdbcTemplateにSQLExceptionTranslatorなどの特別な構成があり、再利用する場合に適しています。getJdbcTemplate
この操作オブジェクトが使用するJdbcTemplateを返します。setDataSource
接続を取得する JDBCDataSourceSE を設定します。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です。- 関連事項: