原創(chuàng)說明:本文為本人原創(chuàng)作品,絕非他處轉(zhuǎn)載,轉(zhuǎn)賬請注明出處

1.事務(wù)的定義:事務(wù)是指多個操作單元組成的合集,多個單元操作是整體不可分割的,要么都操作不成功,要么都成功。其必須遵循四個原則(ACID)。

  1. 原子性(Atomicity):即事務(wù)是不可分割的最小工作單元,事務(wù)內(nèi)的操作要么全做,要么全不做;

  2. 一致性(Consistency):在事務(wù)執(zhí)行前數(shù)據(jù)庫的數(shù)據(jù)處于正確的狀態(tài),而事務(wù)執(zhí)行完成后數(shù)據(jù)庫的數(shù)據(jù)還是應該處于正確的狀態(tài),即數(shù)據(jù)完整性約束沒有被破壞;如銀行轉(zhuǎn)帳,A轉(zhuǎn)帳給B,必須保證A的錢一定轉(zhuǎn)給B,一定不會出現(xiàn)A的錢轉(zhuǎn)了但B沒收到,否則數(shù)據(jù)庫的數(shù)據(jù)就處于不一致(不正確)的狀態(tài)。

  3. 隔離性(Isolation):并發(fā)事務(wù)執(zhí)行之間互不影響,在一個事務(wù)內(nèi)部的操作對其他事務(wù)是不產(chǎn)生影響,這需要事務(wù)隔離級別來指定隔離性;

  4. 持久性(Durability):事務(wù)一旦執(zhí)行成功,它對數(shù)據(jù)庫的數(shù)據(jù)的改變必須是永久的,不會因比如遇到系統(tǒng)故障或斷電造成數(shù)據(jù)不一致或丟失。

2.事務(wù)的類型

  1. 數(shù)據(jù)庫分為本地事務(wù)跟全局事務(wù)

    • 本地事務(wù):普通事務(wù),獨立一個數(shù)據(jù)庫,能保證在該數(shù)據(jù)庫上操作的ACID。

    • 分布式事務(wù):涉及兩個或多個數(shù)據(jù)庫源的事務(wù),即跨越多臺同類或異類數(shù)據(jù)庫的事務(wù)(由每臺數(shù)據(jù)庫的本地事務(wù)組成的),分布式事務(wù)旨在保證這些本地事務(wù)的所有操作的ACID,使事務(wù)可以跨越多臺數(shù)據(jù)庫;

  2. Java事務(wù)類型分為JDBC事務(wù)跟JTA事務(wù)

    • JDBC事務(wù):即為上面說的數(shù)據(jù)庫事務(wù)中的本

      網(wǎng)友評論