Class DbConnectionContext

java.lang.Object
nablarch.core.db.connection.DbConnectionContext

public final class DbConnectionContext extends Object
データベース接続(AppDbConnection)をスレッド単位に管理するクラス。

設定されたデータベース接続をスレッドに紐付けて管理する。
データベース接続の取得要求があった場合は、スレッドに紐付いているデータベース接続を返す。

Author:
Koichi Asano
  • Method Details

    • setConnection

      @Published(tag="architect") public static void setConnection(AppDbConnection con)
      データベース接続をデフォルトの名前でスレッドに設定する。

      データベース接続の設定には、"transaction"という名前が使用される。 設定できるデフォルトのデータベース接続はカレントスレッドに対して一つまでである。

      Parameters:
      con - データベース接続
      Throws:
      IllegalArgumentException - カレントスレッドに対してデフォルトのデータベース接続を複数設定した場合
    • setConnection

      @Published(tag="architect") public static void setConnection(String connectionName, AppDbConnection con)
      データベース接続を指定した名前でスレッドに設定する。

      名前はスレッド内でユニークでなければならない。

      Parameters:
      connectionName - データベース接続名
      con - データベース接続
      Throws:
      IllegalArgumentException - カレントスレッドに対して同じ名前のデータベース接続が設定されている場合
    • getConnection

      @Published(tag="architect") public static AppDbConnection getConnection()
      現在のスレッドに紐付けられたデフォルトのデータベース接続を取得する。

      データベース接続の取得には、"transaction"という名前が使用される。

      Returns:
      データベース接続
    • getConnection

      @Published(tag="architect") public static AppDbConnection getConnection(String connectionName)
      現在のスレッドに紐付けられた指定した名前のデータベース接続を取得する。
      Parameters:
      connectionName - データベース接続名
      Returns:
      データベース接続
      Throws:
      IllegalArgumentException - データベース接続が見つからなかった場合
    • containConnection

      public static boolean containConnection(String connectionName)
      現在のスレッドに指定した名前のデータベース接続が保持されているか判定する。
      Parameters:
      connectionName - データベース接続名
      Returns:
      データベース接続が保持されていればtrue
    • removeConnection

      @Published(tag="architect") public static void removeConnection()
      現在のスレッドに紐付いたデフォルトのデータベース接続を削除する。

      データベース接続の取得には"transaction"という名前が使用される。

    • removeConnection

      @Published(tag="architect") public static void removeConnection(String connectionName)
      現在のスレッドに紐付いた指定した名前のデータベース接続を削除する。
      Parameters:
      connectionName - データベース接続名
    • getTransactionManagerConnection

      @Published(tag="architect") public static TransactionManagerConnection getTransactionManagerConnection()
      現在のスレッドに紐付いたデフォルトのトランザクション制御を取得する。

      トランザクション制御の取得には、"transaction"という名前が使用される。

      Returns:
      トランザクション制御
      Throws:
      ClassCastException - データベース接続の実体がTransactionManagerConnectionを実装していない場合
      IllegalArgumentException - データベース接続が見つからなかった場合
    • getTransactionManagerConnection

      @Published(tag="architect") public static TransactionManagerConnection getTransactionManagerConnection(String connectionName)
      現在のスレッドから指定した名前のトランザクション制御を取得する。
      Parameters:
      connectionName - データベース接続名
      Returns:
      トランザクション制御
      Throws:
      ClassCastException - データベース接続の実体がTransactionManagerConnectionを実装していない場合
      IllegalArgumentException - データベース接続が見つからなかった場合