クラス ExtendedConnectionDataSourceProxy
- 実装されているすべてのインターフェース:
WrapperSE、CommonDataSourceSE、DataSourceSE、org.springframework.beans.factory.InitializingBean、org.springframework.jdbc.datasource.SmartDataSource
Connection.close() が呼び出された場合でも、各使用後に閉じられない単一の JDBC 接続を維持できる SmartDataSource の実装。Spring の PlatformTransactionManager 実装のいずれかと併用すると、複数のトランザクションにわたって接続を開いたままにすることができます。
Spring コアの SingleConnectionDataSource 実装に大まかに基づいています。JdbcCursorItemReader とともに使用して、トランザクションの境界を越えて開いたままの接続を提供することを目的としています。カーソルが存続する間開いたままであり、残りのステップ処理のメイントランザクションと共有できます。
接続に対してクローズ抑制がオンになると、最初の getConnection() 呼び出しに対して返されます。getConnection() への後続の呼び出しは、クローズ抑制された ConnectionSE に対して shouldClose(Connection) を呼び出して接続をクローズする必要があるかどうかを DataSourceUtils が照会するまで、ラップされた DataSourceSE から新しい接続を取得します。その時点で、サイクルが最初からやり直され、次の getConnection() 呼び出しでクローズ抑制されている ConnectionSE が返されます。これにより、クローズ抑制された ConnectionSE を継承データアクセスプロセスのメイン ConnectionSE として使用できます。stopCloseSuppression(Connection) を呼び出すと、クローズ抑制がオフになります。
このクラスはマルチスレッドに対応していません。
返される接続は、物理 ConnectionSE ではなくクローズ抑制プロキシになります。これをネイティブ OracleConnection などにキャストできなくなることに注意してください。Wrapper.unwrap(Class)SE を使用する必要があります。
- 導入:
- 2.0
- 作成者:
- Thomas Risberg, Mahmoud Ben Hassine
- 関連事項:
getConnection()Connection.close()DataSourceUtils.releaseConnection(java.sql.Connection, javax.sql.DataSource)Wrapper.unwrap(Class)SE
コンストラクターの概要
コンストラクターコンストラクター説明JavaBean スタイルを使用して構成された場合に使用する引数コンストラクターはありません。ExtendedConnectionDataSourceProxy(DataSourceSE dataSource) ラップされるDataSourceSE をパラメーターとして受け取るコンストラクター。方法の概要
修飾子と型メソッド説明voidprotected ConnectionSEすべてのメソッド呼び出しを委譲するプロキシを使用して、指定された接続をラップしますが、クローズ呼び出しを抑制します。getConnection(StringSE username, StringSE password) intJDK7 との互換性のために追加されました。booleanisCloseSuppressionActive(ConnectionSE connection) 指定されたConnectionSE に対してアクティブ化されているクローズ抑制のステータスを返しますbooleanisWrapperFor(ClassSE<?> iface) Java 5 の互換性を維持するために、自己およびデリゲートのクラスの「浅い」非再帰的チェックのみを実行します。voidsetDataSource(DataSourceSE dataSource) 折り返しされるDataSourceSE の場合は Setter。voidsetLoginTimeout(int seconds) voidbooleanshouldClose(ConnectionSE connection) voidstartCloseSuppression(ConnectionSE connection) voidstopCloseSuppression(ConnectionSE connection) <T> T提供されたパラメータークラスにキャストできる場合は、self または delegate のいずれかを(この順序で)返します。クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース javax.sql.CommonDataSourceSE から継承されたメソッド
createShardingKeyBuilderインターフェース javax.sql.DataSourceSE から継承されたメソッド
createConnectionBuilder
コンストラクターの詳細
ExtendedConnectionDataSourceProxy
public ExtendedConnectionDataSourceProxy()JavaBean スタイルを使用して構成された場合に使用する引数コンストラクターはありません。ExtendedConnectionDataSourceProxy
ラップされるDataSourceSE をパラメーターとして受け取るコンストラクター。- パラメーター:
dataSource- 使用する DataSource
メソッドの詳細
setDataSource
折り返しされるDataSourceSE の場合は Setter。- パラメーター:
dataSource- DataSource
shouldClose
- 次で指定:
- インターフェース
org.springframework.jdbc.datasource.SmartDataSourceのshouldClose - 関連事項:
SmartDataSource
isCloseSuppressionActive
指定されたConnectionSE に対してアクティブ化されているクローズ抑制のステータスを返します- パラメーター:
connection- クローズ抑制ステータスがリクエストされているConnectionSE- 戻り値:
- 正しいか間違っているか
startCloseSuppression
- パラメーター:
connection- 近接制圧をリクエストされたConnectionSE
stopCloseSuppression
- パラメーター:
connection- 閉じる抑制をオフにする必要があるConnectionSE
getConnection
- 次で指定:
- インターフェース
DataSourceSEのgetConnection - 例外:
SQLExceptionSE
getConnection
- 次で指定:
- インターフェース
DataSourceSEのgetConnectionSE - 例外:
SQLExceptionSE
getLogWriter
- 次で指定:
- インターフェース
CommonDataSourceSEのgetLogWriter - 次で指定:
- インターフェース
DataSourceSEのgetLogWriter - 例外:
SQLExceptionSE
getLoginTimeout
- 次で指定:
- インターフェース
CommonDataSourceSEのgetLoginTimeout - 次で指定:
- インターフェース
DataSourceSEのgetLoginTimeout - 例外:
SQLExceptionSE
setLogWriter
- 次で指定:
- インターフェース
CommonDataSourceSEのsetLogWriterSE - 次で指定:
- インターフェース
DataSourceSEのsetLogWriterSE - 例外:
SQLExceptionSE
setLoginTimeout
- 次で指定:
- インターフェース
CommonDataSourceSEのsetLoginTimeoutSE - 次で指定:
- インターフェース
DataSourceSEのsetLoginTimeoutSE - 例外:
SQLExceptionSE
getCloseSuppressingConnectionProxy
すべてのメソッド呼び出しを委譲するプロキシを使用して、指定された接続をラップしますが、クローズ呼び出しを抑制します。- パラメーター:
target- ラップする元の接続- 戻り値:
- ラップされた接続
isWrapperFor
Java 5 の互換性を維持するために、自己およびデリゲートのクラスの「浅い」非再帰的チェックのみを実行します。- 次で指定:
- インターフェース
WrapperSEのisWrapperForSE - 例外:
SQLExceptionSE
unwrap
提供されたパラメータークラスにキャストできる場合は、self または delegate のいずれかを(この順序で)返します。Java 5 の互換性を維持するために、デリゲートの再帰的なアンラップをサポートしていません。- 次で指定:
- インターフェース
WrapperSEのunwrapSE - 例外:
SQLExceptionSE
afterPropertiesSet
- 次で指定:
- インターフェース
org.springframework.beans.factory.InitializingBeanのafterPropertiesSet - 例外:
ExceptionSE
getParentLogger
JDK7 との互換性のために追加されました。- 次で指定:
- インターフェース
CommonDataSourceSEのgetParentLogger - 例外:
SQLFeatureNotSupportedExceptionSE