欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java事務(wù)的概念淺析

 更新時(shí)間:2020年12月01日 16:17:19   投稿:laozhang  
在本篇內(nèi)容里小編給大家整理的是一篇關(guān)于java事務(wù)的概念淺析,有興趣的朋友們可以參考學(xué)習(xí)下。

事務(wù),一般是指要做的或所做的事情。在計(jì)算機(jī)術(shù)語中是指訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行單元(unit)。事務(wù)(Transaction)是訪問并可能更新數(shù)據(jù)庫中各種數(shù)據(jù)項(xiàng)的一個(gè)程序執(zhí)行單元(unit)。事務(wù)通常由高級(jí)數(shù)據(jù)庫操縱語言或編程語言(如SQL,C++或Java)書寫的用戶程序的執(zhí)行所引起,并用形如begin transaction和end transaction語句(或函數(shù)調(diào)用)來界定。事務(wù)由事務(wù)開始(begin transaction)和事務(wù)結(jié)束(end transaction)之間執(zhí)行的全體操作組成。

一個(gè)Java應(yīng)用系統(tǒng),如果要操作數(shù)據(jù)庫,則通過JDBC來實(shí)現(xiàn)的。增加、修改、刪除都是通過相應(yīng)方法間接來實(shí)現(xiàn)的,事務(wù)的控制也相應(yīng)轉(zhuǎn)移到Java程序代碼中。因此,數(shù)據(jù)庫操作的事務(wù)習(xí)慣上就稱為Java事務(wù)。

1、事務(wù)的特性

事務(wù)必須服從ISO/IEC所制定的ACID原則。ACID是原子性(atomicity)、一致性(consistency)、隔離性 (isolation)和持久性(durability)的縮寫。

原子性(atomicity):事務(wù)是數(shù)據(jù)庫的邏輯工作單位,而且是必須是原子工作單位,對(duì)于其數(shù)據(jù)修改,要么全部執(zhí)行,要么全部不執(zhí)行。比如A向B轉(zhuǎn)賬1000元,那么這就一定要保證原子性(要么同時(shí)成功,要么同時(shí)失敗)。
一致性(consistency):事務(wù)必須是使數(shù)據(jù)庫從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài),一致性與原子性是密切相關(guān)的。比如A向B轉(zhuǎn)賬,不可能A扣了錢,B卻沒收到(這就是非一致性)。

隔離性(isolation):一個(gè)事務(wù)的執(zhí)行不能被其他事務(wù)所影響。比如A和C同時(shí)向B轉(zhuǎn)賬,那B同一時(shí)間只能和一個(gè)人交易(同時(shí)只能有一個(gè)交易在執(zhí)行)。

持久性(durability):一個(gè)事務(wù)一旦提交,事物的操作便永久性的保存在DB中。即使此時(shí)再執(zhí)行回滾操作也不能撤消所做的更改。A向B轉(zhuǎn)賬,成功以后B的賬戶就存入了轉(zhuǎn)賬數(shù)額,在不做其他的操作前提下數(shù)據(jù)是永久性的。

2、事務(wù)的隔離級(jí)別

串行化,Serializable,一個(gè)事務(wù)在執(zhí)行過程中完全看不到其他事務(wù)對(duì)數(shù)據(jù)庫所做的更新。

可重復(fù)讀,Repeatable Read,一個(gè)事務(wù)在執(zhí)行過程中可以看到其他事務(wù)已經(jīng)提交的記錄,但是不能看到其他事務(wù)對(duì)已有記錄的更新。

讀已提交數(shù)據(jù),Read Commited,一個(gè)事務(wù)在執(zhí)行過程中可以看到其他事務(wù)已經(jīng)提交的記錄,而且能看到其他事務(wù)對(duì)已有記錄的更新。

讀未提交數(shù)據(jù),Read UnCommited,一個(gè)事務(wù)在執(zhí)行過程中可以看到其他事務(wù)沒有提交的記錄,而且能看到其他事務(wù)沒有提交的記錄的更新。

隔離級(jí)別越高,越能保證數(shù)據(jù)的完整性和一致性,但對(duì)高并發(fā)性能影響也越大,故需要合理選擇。

3、Java中的事務(wù)處理

一般情況下,J2EE應(yīng)用服務(wù)器支持JDBC事務(wù)、JTA(Java Transaction API)事務(wù)、容器管理事務(wù)。一般情況下,最好不要在程序中同時(shí)使用上述三種事務(wù)類型,比如在JTA事務(wù)中嵌套JDBC事務(wù)。第二方面,事務(wù)要在盡可能短的時(shí)間內(nèi)完成,不要在不同方法中實(shí)現(xiàn)事務(wù)的使用。

到此這篇關(guān)于java事務(wù)的概念淺析的文章就介紹到這了,更多相關(guān)java里面有事務(wù)的概念嗎內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論