事務(wù)必須服從ISO/IEC所制定的ACID原則。ACID是原子性(atomicity)、一致性(consistency)、隔離性
(isolation)和持久性(durability)的縮寫。事務(wù)的原子性表示事務(wù)執(zhí)行中的任何失敗都將使事務(wù)所做的任何更改無效。一致性表示在事務(wù)失敗時,受事務(wù)影響的所有數(shù)據(jù)都應(yīng)還原到其執(zhí)行前狀態(tài)。隔離表示事務(wù)執(zhí)行期間對數(shù)據(jù)的更改對事務(wù)提交之前的其他事務(wù)不可見。
通俗的理解,事務(wù)是一組原子操作單元,從數(shù)據(jù)庫角度說,就是一組SQL指令,要么全部執(zhí)行,若因為某個原因其中一條指令執(zhí)行有錯誤,則撤銷先前執(zhí)行過的所有指令。更簡答的說就是:要么全部執(zhí)行,要么撤銷不執(zhí)行。
既然事務(wù)的概念從數(shù)據(jù)庫而來,那Java事務(wù)是什么?之間有什么聯(lián)系?
實際上,一個Java應(yīng)用系統(tǒng),如果要操作數(shù)據(jù)庫,則JDBC來實現(xiàn)的。增加、修改、刪除都是相應(yīng)方法間接來實現(xiàn)的,事務(wù)的控制也相應(yīng)轉(zhuǎn)移到Java程序代碼中。因此,數(shù)據(jù)庫操作的事務(wù)習(xí)慣上就稱為Java事務(wù)。
![](https://img5.pxto.com.cn/cs_1601802_5e9fdf822189a.jpg)