public class ConnectionHolder extends ResourceHolderSupport
Connection
SE をラップするリソースホルダー。DataSourceTransactionManager
は、特定の DataSource
SE について、このクラスのインスタンスをスレッドにバインドします。ネストされた JDBC トランザクションおよび参照カウント機能のロールバックのみのサポートを基本クラスから継承します。
メモ: これは SPI クラスであり、アプリケーションでの使用は意図されていません。
DataSourceTransactionManager
, DataSourceUtils
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | SAVEPOINT_NAME_PREFIX セーブポイント名の接頭辞。 |
コンストラクターと説明 |
---|
ConnectionHolder(ConnectionSE connection) 進行中のトランザクションがないと想定して、指定された JDBC 接続用に新しい ConnectionHolder を作成し、それを SimpleConnectionHandle でラップします。 |
ConnectionHolder(ConnectionSE connection, boolean transactionActive) 指定された JDBC 接続用に新しい ConnectionHolder を作成し、それを SimpleConnectionHandle でラップします。 |
ConnectionHolder(ConnectionHandle connectionHandle) 指定された ConnectionHandle の新しい ConnectionHolder を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | clear() このリソースホルダーのトランザクション状態をクリアします。 |
SavepointSE | createSavepoint() 接続に固有の生成されたセーブポイント名を使用して、現在の接続に新しい JDBC 3.0 セーブポイントを作成します。 |
ConnectionSE | getConnection() この ConnectionHolder によって保持されている現在の接続を返します。 |
ConnectionHandle | getConnectionHandle() この ConnectionHolder が保持する ConnectionHandle を返します。 |
protected boolean | hasConnection() このホルダーが現在接続を持っているかどうかを返します。 |
protected boolean | isTransactionActive() このホルダーがアクティブな JDBC 管理のトランザクションを表すかどうかを返します。 |
void | released() この ConnectionHolder によって保持されている現在の接続を解放します。 |
protected void | setConnection(ConnectionSE connection) 既存の接続ハンドルを指定された接続でオーバーライドします。 |
protected void | setTransactionActive(boolean transactionActive) このホルダーがアクティブな JDBC 管理トランザクションを表すかどうかを設定します。 |
boolean | supportsSavepoints() JDBC 3.0 セーブポイントがサポートされているかどうかを返します。 |
getDeadline, getTimeToLiveInMillis, getTimeToLiveInSeconds, hasTimeout, isOpen, isRollbackOnly, isSynchronizedWithTransaction, isVoid, requested, reset, resetRollbackOnly, setRollbackOnly, setSynchronizedWithTransaction, setTimeoutInMillis, setTimeoutInSeconds, unbound
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public ConnectionHolder(ConnectionHandle connectionHandle)
connectionHandle
- 保持する ConnectionHandlepublic ConnectionHolder(ConnectionSE connection)
SimpleConnectionHandle
でラップします。connection
- 保持する JDBC 接続 SimpleConnectionHandle
, ConnectionHolder(java.sql.Connection, boolean)
public ConnectionHolder(ConnectionSE connection, boolean transactionActive)
SimpleConnectionHandle
でラップします。connection
- 保持する JDBC 接続 transactionActive
- 指定された接続が進行中のトランザクションに関与しているかどうか SimpleConnectionHandle
@Nullable public ConnectionHandle getConnectionHandle()
protected boolean hasConnection()
protected void setTransactionActive(boolean transactionActive)
protected boolean isTransactionActive()
protected void setConnection(@Nullable ConnectionSE connection)
null
が指定されている場合、ハンドルをリセットします。 サスペンド時に接続を解放し(null
引数を使用)、再開時に新しい接続を設定するために使用されます。
public ConnectionSE getConnection()
これは、ConnectionHolder で released
が呼び出されるまで同じ接続であり、保持されている接続をリセットし、オンデマンドで新しい接続をフェッチします。
public boolean supportsSavepoints() throws SQLExceptionSE
SQLExceptionSE
- JDBC ドライバーによってスローされた場合 public SavepointSE createSavepoint() throws SQLExceptionSE
SQLExceptionSE
- JDBC ドライバーによってスローされた場合 public void released()
これは、" 接続借用 " を期待する ConnectionHandles で必要です。この場合、返された各接続は一時的にリースされるだけであり、データ操作が完了したら、同じトランザクション内の他の操作で接続を利用できるようにする必要があります。
ResourceHolderSupport
の released
public void clear()
ResourceHolderSupport
ResourceHolderSupport
の clear