クラス 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()
への後続の呼び出しは、クローズ抑制された Connection
SE に対して shouldClose(Connection)
を呼び出して接続をクローズする必要があるかどうかを DataSourceUtils
が照会するまで、ラップされた DataSource
SE から新しい接続を取得します。その時点で、サイクルが最初からやり直され、次の getConnection()
呼び出しでクローズ抑制されている Connection
SE が返されます。これにより、クローズ抑制された Connection
SE を継承データアクセスプロセスのメイン Connection
SE として使用できます。stopCloseSuppression(Connection)
を呼び出すと、クローズ抑制がオフになります。
このクラスはマルチスレッドに対応していません。
返される接続は、物理 Connection
SE ではなくクローズ抑制プロキシになります。これをネイティブ 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) ラップされるDataSource
SE をパラメーターとして受け取るコンストラクター。メソッドのサマリー
修飾子と型メソッド説明void
protected ConnectionSE
すべてのメソッド呼び出しを委譲するプロキシを使用して、指定された接続をラップしますが、クローズ呼び出しを抑制します。getConnection
(StringSE username, StringSE password) int
JDK7 との互換性のために追加されました。boolean
isCloseSuppressionActive
(ConnectionSE connection) 指定されたConnection
SE に対してアクティブ化されているクローズ抑制のステータスを返しますboolean
isWrapperFor
(ClassSE<?> iface) Java 5 の互換性を維持するために、自己およびデリゲートのクラスの「浅い」非再帰的チェックのみを実行します。void
setDataSource
(DataSourceSE dataSource) 折り返しされるDataSource
SE の場合は Setter。void
setLoginTimeout
(int seconds) void
boolean
shouldClose
(ConnectionSE connection) void
startCloseSuppression
(ConnectionSE connection) void
stopCloseSuppression
(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
ラップされるDataSource
SE をパラメーターとして受け取るコンストラクター。- パラメーター:
dataSource
- 使用する DataSource
メソッドの詳細
setDataSource
折り返しされるDataSource
SE の場合は Setter。- パラメーター:
dataSource
- DataSource
shouldClose
- 次で指定:
- インターフェース
org.springframework.jdbc.datasource.SmartDataSource
のshouldClose
- 関連事項:
SmartDataSource
isCloseSuppressionActive
指定されたConnection
SE に対してアクティブ化されているクローズ抑制のステータスを返します- パラメーター:
connection
- クローズ抑制ステータスがリクエストされているConnection
SE- 戻り値:
- 正しいか間違っているか
startCloseSuppression
- パラメーター:
connection
- 近接制圧をリクエストされたConnection
SE
stopCloseSuppression
- パラメーター:
connection
- 閉じる抑制をオフにする必要があるConnection
SE
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