パッケージ org.opengion.fukurou.db
インタフェース Transaction
-
- すべてのスーパーインタフェース:
java.lang.AutoCloseable
- 既知の実装クラスのリスト:
TransactionImpl
,TransactionReal
public interface Transaction extends java.lang.AutoCloseable
コネクションを共有して、トランザクションを実現するインターフェースです。 基本的には、TransactionTag で利用されますが、一部、このオブジェクトを 渡して、直接、利用するケースもあります。 トランザクション の実クラスには、close()時に、commit,rollback を行う、 TransactionReal クラスと、内部にキャッシュされた コネクションを、終了時点で 一括処理を行う、TransactionImpl があります。 TransactionTag で利用するのが、TransactionImpl で、Connectionのラッパーとして 利用するのが、TransactionReal クラスになります。 6.3.6.1 (2015/08/28) selectを実行した後で明示的にcommit,rollbackを行わないのはOracle位 らしいので、検索終了時でも、commit か、rollback を行うようにします。 つまり、commit されない(=途中で処理が打ち切られた)場合は、 rollback するように仕様変更しますので、Transactionオブジェクトを 呼び出した処理の最後には、検索であろうとなかろうと、commit()を入れてください。 ただし、Transaction オブジェクトは、DBアクセス以外にも適用可能に 作成しているため、Connection がある場合のみ、実際の commit/rollback が 実行されます。- 変更履歴:
- 5.1.9.0 (2010/08/01) 新規作成
- バージョン
- 5.0
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK6.0,
-
-
メソッドの概要
すべてのメソッド インスタンス・メソッド abstractメソッド 修飾子とタイプ メソッド 説明 void
close()
トランザクションの、終了時処理を行います。void
commit()
コミット処理が行われた場合に、内部フラグ(isCommit)を true にセットします。void
endCommit()
最終的なコミットが行われた場合に、内部フラグ(isEndCommit)を true にセットします。java.sql.Connection
getConnection(java.lang.String dbid)
指定のDBID に対応した、Connection オブジェクトを返します。void
rollback()
ロールバック処理が行われた場合に、内部フラグ(isRollback)を true にセットします。
-
-
-
メソッドの詳細
-
getConnection
java.sql.Connection getConnection(java.lang.String dbid)
指定のDBID に対応した、Connection オブジェクトを返します。 内部Mapに存在していれば、そのコネクションを、存在しなければ、 新しく作成します。 Connection をキャッシュに戻すなどは、Transaction実装クラスで行います。- パラメータ:
dbid
- 接続先ID- 戻り値:
- 指定のDBID に対応した、コネクションオブジェクト
-
commit
void commit()
コミット処理が行われた場合に、内部フラグ(isCommit)を true にセットします。 1回でもコミットが行われており、ロールバックが行われていなければ、 コミットされます。 検索処理時でも、最後に commit() を実行してください。実行されていない場合は、 自動的に、rollback() が、実行されます。- 変更履歴:
- 6.3.6.1 (2015/08/28) AutoCloseable の close() メソッドに対応。return 不要。
-
rollback
void rollback()
ロールバック処理が行われた場合に、内部フラグ(isRollback)を true にセットします。 1回でもロールバックが行われていれば、最終的にはロールバックされます。 一度も、ロールバックが行われていない場合でも、コミットが行われていない場合は、 rollback()を実行します。- 変更履歴:
- 6.3.6.1 (2015/08/28) AutoCloseable の close() メソッドに対応。return 不要。
-
close
void close()
トランザクションの、終了時処理を行います。 それまでの処理は、すべて正常に処理できた場合に、使用します。- 定義:
close
インタフェース内java.lang.AutoCloseable
- 関連項目:
AutoCloseable.close()
- 変更履歴:
- 6.3.6.1 (2015/08/28) AutoCloseable の close() メソッドに対応。return 不要。
-
endCommit
void endCommit()
最終的なコミットが行われた場合に、内部フラグ(isEndCommit)を true にセットします。 通常は、この処理は、1値度だけ実行されます。 初期値が、false なので、途中で一度でも実行されると、true にセットされ、最後まで 処理されたとみなされてしまうので、注意してください。 通常は、タグリブの、doEndTag() が実行された場合に、呼びます。 このフラグが、true でないと(つまり、一度でも呼ばれないと)最終的に、commit されません。 なお、endCommit() が呼ばれると、自動的に、commit() も呼んでおきます。- 変更履歴:
- 6.4.3.3 (2016/03/04) 一般的なタグで、SKIP_PAGE された場合、rollback するようにします。
-
-