Java トランザクションについての個人的な理解のまとめ

巴扎黑
リリース: 2017-05-22 23:50:35
オリジナル
1253 人が閲覧しました

データベース操作におけるトランザクションは慣例的に Java トランザクションと呼ばれます

1. Java トランザクションとは

通常の概念では、トランザクションはデータベースにのみ関連します。
取引は ISO/IEC が定めた ACID 原則に準拠しなければなりません。 ACID は、原子性、一貫性、分離性、耐久性の略語です。トランザクションのアトミック性とは、トランザクションの実行中に障害が発生すると、トランザクションによって行われた変更が無効になることを意味します。一貫性とは、トランザクションが失敗したときに、トランザクションの影響を受けるすべてのデータをトランザクションが実行される前の状態に復元する必要があることを意味します。分離とは、トランザクションがコミットされるまで、トランザクション実行中のデータへの変更が他のトランザクションから認識されないことを意味します。永続性とは、トランザクションの実行が失敗した場合でも、送信されたデータのステータスが正しい必要があることを意味します。一般的に理解されているように、トランザクションは一連のアトミックな操作単位であり、データベースの観点からは一連の SQL 命令であり、いずれかの命令が何らかの理由で間違っている場合、すべての命令が実行されたことになります。前に。より簡単な答えは、すべての実行が成功するか、キャンセルされて実行されないかのどちらかです。
トランザクションの概念はデータベースから来ていますが、Java トランザクションとは何ですか?どういう関係があるのでしょうか?
実際、Java アプリケーションシステムでデータベースを操作したい場合は、JDBC を介して実装されます。追加、変更、削除はすべて、対応するメソッドを通じて間接的に実装され、トランザクション制御もそれに応じて Java プログラム コードに渡されます。したがって、データベース操作トランザクションは伝統的に Java トランザクションと呼ばれています。


2. トランザクションが必要な理由

トランザクション制御は、実際にはデータの安全なアクセスを制御するために提案されています。簡単な例を次に示します。たとえば、銀行振込業務で、口座 A が自分の口座から口座 B に 1,000 元を送金したいとします。まず口座 A の残高から 1,000 元を差し引いてから、口座 B の残高を差し引く必要があります。 1,000元増額されます。中間ネットワークに問題が発生し、Aの口座からの1000元の引き落としが終了し、ネットワークの中断によりBの運営が失敗した場合、ビジネス全体が失敗し、キャンセルを要求するように制御する必要があります。 Aさんの口座の振込業務。これにより、この操作を完了するには、アカウント A の資金の減少とアカウント B の資金の増加が 1 つのトランザクションにまとめられるか、すべての操作がキャンセルされる必要があります。したがって、データのセキュリティが維持されます。

3. Java トランザクションの種類

Java トランザクションには、JDBC トランザクション、JTA (Java Transaction API) トランザクション、およびコンテナー トランザクションの 3 種類があります。
1. JDBC トランザクション
JDBC トランザクションは Connection オブジェクトを使用して制御されます。 JDBC 接続インターフェース (java.sql.Connection) は、自動送信と手動送信という 2 つのトランザクション モードを提供します。 java.sql.Connection は、トランザクションを制御する次のメソッドを提供します:
public void setAutoCommit(boolean)
public boolean getAutoCommit()
public void commit()
public void rollback()
JDBC トランザクションを使用する場合、複数の SQL ステートメントを定義できますトランザクションに結合されます。 JDBC トランザクションの欠点の 1 つは、トランザクションの範囲が 1 つのデータベース接続に制限されていることです。 JDBC トランザクションは複数のデータベースにまたがることはできません。

【関連する推奨事項】

1.

Java トランザクション管理を学習するための詳細な JDBC サンプル コード

2.

Java トランザクション管理を学習するための Hibernate の詳細な紹介

3.

Java トランザクション管理を学習するための Spring と Hibernateコードの説明

以上がJava トランザクションについての個人的な理解のまとめの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート