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 rollback()
JDBC トランザクション境界設定を使用すると、複数の SQL ステートメントを 1 つのトランザクションに結合できます。 JDBC トランザクションの欠点の 1 つは、トランザクションの範囲が 1 つのデータベース接続に制限されていることです。 JDBC トランザクションは複数のデータベースにまたがることはできません。