首頁 >Java >java教程 >JAVA為什麼要用到事務

JAVA為什麼要用到事務

anonymity
anonymity原創
2019-05-05 12:23:484142瀏覽

JAVA為什麼要用到事務

什麼是交易?

事務(Transaction),一般是指要做的或所做的事情。在電腦術語中是指存取並可能更新資料庫中各種資料項的一個程式執行單元(unit)。事務通常由高階資料庫操縱語言或程式語言(如SQL,C 或Java)所書寫的使用者程式的執行所引起,並以形如begin transaction和end transaction語句(或函數呼叫)來界定。事務由事務開始(begin transaction)和事務結束(end transaction)之間執行的全體操作所組成。

為什麼要交易?

事務是為解決資料安全操作提出的,事務控制其實就是控制資料的安全存取。

用一個簡單例子說明:銀行轉帳業務,帳戶A要將自己帳戶上的1000元轉到B帳戶下面,A帳戶餘額首先要減去1000元,然後B帳戶要增加1000元。假如在中間網路出現了問題,A帳戶減去1000元已經結束,B因為網路中斷而操作失敗,那麼整個業務失敗,必須做出控制,要求A帳戶轉帳業務撤銷。這才能確保業務的正確性,完成這個操走就需要事務,將A帳戶資金減少和B帳戶資金增加放到同一個事務裡,要么全部執行成功,要么全部撤銷,這樣就保證了數據的安全性。

事務的4個特性(ACID):

1) 原子性(atomicity):事務是資料庫的邏輯工作單位,而且必須是原子工作單位,對於其資料修改,要麼全部執行,要麼全部不執行。

2) 一致性(consistency):交易在完成時,必須是所有的資料都保持一致狀態。在相關資料庫中,所有規則都必須套用於交易的修改,以保持所有資料的完整性。 (實例:轉賬,兩個帳戶餘額相加,數值不變。)

3) 隔離性(isolation):一個事務的執行不能被其他事務所影響。

4) 持久性(durability):一個交易一旦提交,事物的操作便永久性的保存在DB中。即便是在資料庫系統遇到故障的情況下也不會遺失提交交易的操作。

Java有幾種類型的交易?

Java事務的類型有三種:JDBC事務、JTA(Java Transaction API)事務、容器事務。

以上是JAVA為什麼要用到事務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn