概要 | パッケージ | クラス | 非推奨 API | 索引
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

## woolpack.sql.tx
クラス TxBuilder

    java.lang.Object
      woolpack.sql.tx.TxBuilder

    public class TxBuilder

extends Object

トランザクションを制御する`DataSource`のプロキシと トランザクションが制御された`DataSource`のプロキシを生成するビルダです。 インタープリタ デザインパターンと組み合わせることにより 業務処理から RDB のトランザクション処理を分離することができます。 トランザクションを制御するプロキシから取得したコネクションで管理されたブロック内では、 トランザクションが制御されたプロキシから取得したコネクションが同一スレッド内で共有されます。 このクラスでは `DataSource.getConnection()`をサポートしますが `DataSource.getConnection(String, String)`はサポートしません。 このクラスは`ThreadLocal`を使用しています。 このクラスのメソッドは最初に発生した例外を再スローするため、メソッド内で続けて発生した例外の情報は失われます。
適用しているデザインパターン：Thread specific Storage, `DataSource`のProxyを生成するBuilder。

コンストラクタの概要
`TxBuilder(DataSource dataSource)`

メソッドの概要
`DataSource` | `getDataSource()`
`DataSource` | `getTmpDataSource()` `DataSource.getConnection()`実行時に以前のリソースを閉じます。
`DataSource` | `getTmpDataSource(boolean refreshFlag)` トランザクションが制御された`DataSource`のプロキシを返します。
`DataSource` | `getTxDataSource()` `Connection.close()`ではコミット・ロールバックのいずれのフラグも立っていない時にコミットします。
`DataSource` | `getTxDataSource(boolean defaultCommitFlag)` トランザクションを制御する`DataSource`のプロキシを返します。
`void` | `setDataSource(DataSource dataSource)`

クラス java.lang.Object から継承されたメソッド
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

コンストラクタの詳細

### TxBuilder

    public TxBuilder(DataSource dataSource)

パラメータ:
  `dataSource` - RDBに接続するデータソース。

メソッドの詳細

### getDataSource

    public DataSource getDataSource()

### setDataSource

    public void setDataSource(DataSource dataSource)

### getTxDataSource

    public DataSource getTxDataSource()

  `Connection.close()`ではコミット・ロールバックのいずれのフラグも立っていない時にコミットします。

  戻り値:
    トランザクションを管理するための`DataSource`。
  関連項目:
    `getTxDataSource(boolean)`

### getTxDataSource

    public DataSource getTxDataSource(boolean defaultCommitFlag)

  トランザクションを制御する`DataSource`のプロキシを返します。 `Connection.rollback()`ではロールバックのフラグを立てます。 `Connection.commit()`ではコミットのフラグを立てます。 `Connection.close()`では `getTmpDataSource(boolean)`で作成して開いたままのリソースを全て閉じ、 ロールバックのフラグによってコミットまたはロールバックを実行し、 最後に実際のコネクションを閉じます。

  パラメータ:
    `defaultCommitFlag` - `Connection.close()`でコミット・ロールバックのいずれのフラグも立っていない時にコミットするならtrue。
  戻り値:
    トランザクションを管理するための`DataSource`。

### getTmpDataSource

    public DataSource getTmpDataSource()

  `DataSource.getConnection()`実行時に以前のリソースを閉じます。

  戻り値:
    トランザクションが管理された`DataSource`。
  関連項目:
    `getTmpDataSource(boolean)`

### getTmpDataSource

    public DataSource getTmpDataSource(boolean refreshFlag)

  トランザクションが制御された`DataSource`のプロキシを返します。 `DataSource.getConnection()`では ロールバックのフラグが立っている場合は`SQLException`を投げ、 初めての呼び出しで実際のコネクションを作成し、 引数が true の場合は以前のリソースを閉じます。

  パラメータ:
    `refreshFlag` - `DataSource.getConnection()`実行時に以前のリソースを閉じる場合は true。
  戻り値:
    トランザクションが管理された`DataSource`。

概要 | パッケージ | クラス | 非推奨 API | 索引
前のクラス 次のクラス | フレームあり フレームなし
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド

Copyright (C) 2006-2007 Takahiro Nakamura. All rights reserved.