クラス ConnectionHolder

実装されたすべてのインターフェース:
ResourceHolder

public class ConnectionHolder extends ResourceHolderSupport
JDBC ConnectionSE をラップするリソースホルダー。DataSourceTransactionManager は、特定の DataSourceSE について、このクラスのインスタンスをスレッドにバインドします。

ネストされた JDBC トランザクションおよび参照カウント機能のロールバックのみのサポートを基本クラスから継承します。

メモ: これは SPI クラスであり、アプリケーションでの使用は意図されていません。

導入:
06.05.2003
作成者:
Juergen Hoeller
関連事項:
  • フィールドの詳細

  • コンストラクターの詳細

    • ConnectionHolder

      public ConnectionHolder(ConnectionHandle connectionHandle)
      指定された ConnectionHandle の新しい ConnectionHolder を作成します。
      パラメーター:
      connectionHandle - 保持する ConnectionHandle
    • ConnectionHolder

      public ConnectionHolder(ConnectionSE connection)
      進行中のトランザクションがないと想定して、指定された JDBC 接続用に新しい ConnectionHolder を作成し、それを SimpleConnectionHandle でラップします。
      パラメーター:
      connection - 保持する JDBC 接続
      関連事項:
    • ConnectionHolder

      public ConnectionHolder(ConnectionSE connection, boolean transactionActive)
      指定された JDBC 接続用に新しい ConnectionHolder を作成し、それを SimpleConnectionHandle でラップします。
      パラメーター:
      connection - 保持する JDBC 接続
      transactionActive - 指定された接続が進行中のトランザクションに関与しているかどうか
      関連事項:
  • メソッドの詳細

    • getConnectionHandle

      @Nullable public ConnectionHandle getConnectionHandle()
      この ConnectionHolder が保持する ConnectionHandle を返します。
    • hasConnection

      protected boolean hasConnection()
      このホルダーが現在接続を持っているかどうかを返します。
    • setTransactionActive

      protected void setTransactionActive(boolean transactionActive)
      このホルダーがアクティブな JDBC 管理トランザクションを表すかどうかを設定します。
      関連事項:
    • isTransactionActive

      protected boolean isTransactionActive()
      このホルダーがアクティブな JDBC 管理のトランザクションを表すかどうかを返します。
    • setConnection

      protected void setConnection(@Nullable ConnectionSE connection)
      既存の接続ハンドルを指定された接続でオーバーライドします。null が指定されている場合、ハンドルをリセットします。

      サスペンド時に接続を解放し(null 引数を使用)、再開時に新しい接続を設定するために使用されます。

    • getConnection

      public ConnectionSE getConnection()
      この ConnectionHolder によって保持されている現在の接続を返します。

      これは、ConnectionHolder で released が呼び出されるまで同じ接続であり、保持されている接続をリセットし、オンデマンドで新しい接続をフェッチします。

      関連事項:
    • supportsSavepoints

      public boolean supportsSavepoints() throws SQLExceptionSE
      JDBC セーブポイントがサポートされているかどうかを返します。この ConnectionHolder の存続期間中、フラグをキャッシュします。
      例外:
      SQLExceptionSE - JDBC ドライバーによってスローされた場合
    • createSavepoint

      public SavepointSE createSavepoint() throws SQLExceptionSE
      接続に対して一意に生成されたセーブポイント名を使用して、現在の接続に対して新しい JDBC セーブポイントを作成します。
      戻り値:
      新しいセーブポイント
      例外:
      SQLExceptionSE - JDBC ドライバーによってスローされた場合
    • released

      public void released()
      この ConnectionHolder によって保持されている現在の接続を解放します。

      これは、" 接続借用 " を期待する ConnectionHandles で必要です。この場合、返された各接続は一時的にリースされるだけであり、データ操作が完了したら、同じトランザクション内の他の操作で接続を利用できるようにする必要があります。

      オーバーライド:
      クラス ResourceHolderSupportreleased 
    • clear

      public void clear()
      クラスからコピーされた説明: ResourceHolderSupport
      このリソースホルダーのトランザクション状態をクリアします。
      オーバーライド:
      クラス ResourceHolderSupportclear