在 Java 中,事務通常被用來維護對數據庫的更新操作的一致性和完整性。事務具有四個特性,稱為 ACID 特性:
1.原子性(Atomicity):一個事務必須被視為一個不可分割的最小操作單元,事務中的所有操作要么全部完成,要么全部不完成。如果在事務執行過程中發生了錯誤,會被回滾(Rollback)到最初的狀態,就像這個事務從來沒有被執行過一樣。
2.一致性(Consistency):在事務開始之前和事務結束之后,數據庫必須處于一致的狀態。在事務開始之前和事務結束之后,應該檢查數據的約束,如唯一性、默認值等。如果數據在事務執行過程中被破壞了,事務會被回滾,以確保數據的一致性。
3.隔離性(Isolation):每個事務的執行應該與其他事務的執行相互隔離,即它們不能相互干擾。這意味著如果一個事務正在訪問某個數據,另一個事務就不能同時訪問這個數據,直到第一個事務完成并釋放了對數據的鎖定。在這種情況下,一個事務可能看不到另一個事務的結果,直到它已經完成。
4.持久性(Durability):一旦事務提交,它的結果應該是永久性的,即使系統故障也不應該影響事務的結果。這通常通過將事務的日志記錄到磁盤中來實現,以便在系統崩潰時可以恢復事務。