亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

深入理解Java事務的原理與應用

2020-01-26 14:34:25
字體:
來源:轉載
供稿:網友

一、什么是JAVA事務

通常的觀念認為,事務僅與數據庫相關。

事務必須服從ISO/IEC所制定的ACID原則。ACID是原子性(atomicity)、一致性(consistency)、隔離性 (isolation)和持久性(durability)的縮寫。事務的原子性表示事務執行過程中的任何失敗都將導致事務所做的任何修改失效。一致性表示 當事務執行失敗時,所有被該事務影響的數據都應該恢復到事務執行前的狀態。隔離性表示在事務執行過程中對數據的修改,在事務提交之前對其他事務不可見。持 久性表示已提交的數據在事務執行失敗時,數據的狀態都應該正確。

通俗的理解,事務是一組原子操作單元,從數據庫角度說,就是一組SQL指令,要么全部執行成功,若因為某個原因其中一條指令執行有錯誤,則撤銷先前執行過的所有指令。更簡答的說就是:要么全部執行成功,要么撤銷不執行。

既然事務的概念從數據庫而來,那Java事務是什么?之間有什么聯系?

實際上,一個Java應用系統,如果要操作數據庫,則通過JDBC來實現的。增加、修改、刪除都是通過相應方法間接來實現的,事務的控制也相應轉移到Java程序代碼中。因此,數據庫操作的事務習慣上就稱為Java事務。

二、為什么需要Java事務

事務是為解決數據安全操作提出的,事務控制實際上就是控制數據的安全訪問。舉一個簡單例子:比如銀行轉帳業務,賬戶A要將自己賬戶上的1000元轉到B賬 戶下面,A賬戶余額首先要減去1000元,然后B賬戶要增加1000元。假如在中間網絡出現了問題,A賬戶減去1000元已經結束,B因為網絡中斷而操作 失敗,那么整個業務失敗,必須做出控制,要求A賬戶轉帳業務撤銷。這才能保證業務的正確性,完成這個操作就需要事務,將A賬戶資金減少和B賬戶資金增加方 到一個事務里面,要么全部執行成功,要么操作全部撤銷,這樣就保持了數據的安全性。

三、Java事務的類型

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

1、JDBC事務

JDBC 事務是用 Connection 對象控制的。JDBC Connection 接口( java.sql.Connection )提供了兩種事務模式:自動提交和手工提交。 java.sql.Connection 提供了以下控制事務的方法:

public void setAutoCommit(boolean) public boolean getAutoCommit() public void commit() public void rollback() 

使用 JDBC 事務界定時,您可以將多個 SQL 語句結合到一個事務中。JDBC 事務的一個缺點是事務的范圍局限于一個數據庫連接。一個 JDBC 事務不能跨越多個數據庫。

2、JTA(Java Transaction API)事務

JTA是一種高層的,與實現無關的,與協議無關的API,應用程序和應用服務器可以使用JTA來訪問事務。

JTA允許應用程序執行分布式事務處理――在兩個或多個網絡計算機資源上訪問并且更新數據,這些數據可以分布在多個數據庫上。JDBC驅動程序的JTA支持極大地增強了數據訪問能力。

如果計劃用 JTA 界定事務,那么就需要有一個實現 javax.sql.XADataSource 、 javax.sql.XAConnection 和 javax.sql.XAResource 接口的 JDBC 驅動程序。一個實現了這些接口的驅動程序將可以參與 JTA 事務。一個 XADataSource 對象就是一個 XAConnection 對象的工廠。 XAConnection s 是參與 JTA 事務的 JDBC 連接。

您將需要用應用服務器的管理工具設置 XADataSource .從應用服務器和 JDBC 驅動程序的文檔中可以了解到相關的指導。

J2EE應用程序用 JNDI 查詢數據源。一旦應用程序找到了數據源對象,它就調用 javax.sql.DataSource.getConnection() 以獲得到數據庫的連接。

XA 連接與非 XA 連接不同。一定要記住 XA 連接參與了 JTA 事務。這意味著 XA 連接不支持 JDBC 的自動提交功能。同時,應用程序一定不要對 XA 連接調用 java.sql.Connection.commit() 或者 java.sql.Connection.rollback() .

相反,應用程序應該使用 UserTransaction.begin()、 UserTransaction.commit() 和 serTransaction.rollback() .

3、容器事務

容器事務主要是J2EE應用服務器提供的,容器事務大多是基于JTA完成,這是一個基于JNDI的,相當復雜的API實現。相對編碼實現JTA事務管理, 我們可以通過EJB容器提供的容器事務管理機制(CMT)完成同一個功能,這項功能由J2EE應用服務器提供。這使得我們可以簡單的指定將哪個方法加入事 務,一旦指定,容器將負責事務管理任務。這是我們土建的解決方式,因為通過這種方式我們可以將事務代碼排除在邏輯編碼之外,同時將所有困難交給J2EE容 器去解決。使用EJB CMT的另外一個好處就是程序員無需關心JTA API的編碼,不過,理論上我們必須使用EJB. http://hovertree.com/menu/java/

四、三種Java事務差異

1、JDBC事務控制的局限性在一個數據庫連接內,但是其使用簡單。

2、JTA事務的功能強大,事務可以跨越多個數據庫或多個DAO,使用也比較復雜。

3、容器事務,主要指的是J2EE應用服務器提供的事務管理,局限于EJB應用使用。

五、總結

Java事務控制是構建J2EE應用不可缺少的一部分,合理選擇應用何種事務對整個應用系統來說至關重要。一般說來,在單個JDBC 連接連接的情況下可以選擇JDBC事務,在跨多個連接或者數據庫情況下,需要選擇使用JTA事務,如果用到了EJB,則可以考慮使用EJB容器事務

以上這篇深入理解Java事務的原理與應用就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产在线精品自拍| 欧美日韩中文字幕在线视频| 国产91在线视频| 成人黄色在线观看| 91视频免费在线| 裸体女人亚洲精品一区| 精品国产美女在线| 精品国产自在精品国产浪潮| 国产一区香蕉久久| 91在线精品播放| 日韩精品免费在线观看| 91亚洲永久免费精品| 欧美一区二三区| 国内精品久久久久伊人av| 57pao成人国产永久免费| 性欧美暴力猛交69hd| www.美女亚洲精品| 国产精品自产拍在线观| 精品无人区太爽高潮在线播放| 成人黄色大片在线免费观看| 欧美精品999| 国产一区二区三区丝袜| 欧美激情乱人伦一区| 久久久免费观看视频| 日本中文字幕成人| 亚洲japanese制服美女| 国产亚洲xxx| 91精品在线观看视频| 欧美亚洲成人xxx| 综合网日日天干夜夜久久| 久久久久久久国产精品视频| 亚洲天堂视频在线观看| 欧美成年人视频| 欧美精品一二区| 国产91在线高潮白浆在线观看| 欧美日韩亚洲系列| 亚洲国产天堂网精品网站| 91久久国产精品| 亚洲精品99999| 欧美激情性做爰免费视频| 亚洲自拍小视频免费观看| 精品亚洲精品福利线在观看| 日韩欧美一区二区三区| 国产免费久久av| 91亚洲国产成人久久精品网站| 国内精品中文字幕| 欧美老肥婆性猛交视频| 伊人av综合网| 日韩av男人的天堂| 97在线视频免费| 午夜欧美大片免费观看| 亚洲国产精彩中文乱码av在线播放| 亚洲综合日韩中文字幕v在线| 欧美黑人国产人伦爽爽爽| 亚洲精品电影久久久| 日本精品一区二区三区在线| 欧美限制级电影在线观看| 亚洲级视频在线观看免费1级| 久久久久国产精品免费网站| 亚洲午夜国产成人av电影男同| 欧美午夜视频一区二区| 日韩中文字幕在线视频播放| 91精品国产自产91精品| 中文字幕亚洲欧美日韩在线不卡| 美日韩精品视频免费看| 欧美激情视频三区| 亚洲老头同性xxxxx| 日韩国产精品一区| 国产精自产拍久久久久久| 国产精品视频一区二区高潮| 粗暴蹂躏中文一区二区三区| 亚洲欧美国产精品| 久久97精品久久久久久久不卡| 欧美日韩国产一区二区| 亚洲第一区中文99精品| 成人中心免费视频| 青青草国产精品一区二区| 亚洲精品有码在线| 成人在线小视频| 热久久免费视频精品| 国产精品丝袜久久久久久高清| 狠狠操狠狠色综合网| 欧美成人全部免费| 成人网在线免费观看| 国模吧一区二区三区| 中文字幕日韩免费视频| 懂色av影视一区二区三区| 91精品久久久久久久久中文字幕| 亚洲а∨天堂久久精品9966| 亚洲二区中文字幕| 国产不卡av在线免费观看| 亚洲影视中文字幕| 亚洲欧美激情在线视频| 久久精品福利视频| 国产一区二区在线播放| 国产丝袜一区二区三区免费视频| 欧美色播在线播放| 青青在线视频一区二区三区| 久久久久在线观看| 亚洲欧美在线第一页| 5278欧美一区二区三区| 亚洲欧美激情另类校园| 欧美午夜精品伦理| 欧美在线视频免费播放| 午夜免费久久久久| 久久在线免费观看视频| 97在线视频免费观看| 992tv在线成人免费观看| 亚洲免费伊人电影在线观看av| 精品久久久久久久久久国产| 91免费的视频在线播放| 欧美性高潮床叫视频| 最近2019年中文视频免费在线观看| 蜜臀久久99精品久久久无需会员| 性欧美亚洲xxxx乳在线观看| 亚洲人成绝费网站色www| 九九热精品视频国产| 国产美女精品免费电影| 欧美精品中文字幕一区| 最近2019免费中文字幕视频三| 中文字幕免费精品一区| 国产精自产拍久久久久久| 国产美女扒开尿口久久久| 91精品久久久久久久久| 国产成人综合亚洲| 国产精品久久久久久久久久| 青青草原一区二区| 一本一道久久a久久精品逆3p| 久久福利视频导航| 第一福利永久视频精品| 日本高清+成人网在线观看| 国产日韩精品一区二区| 亚洲伊人成综合成人网| 亚洲天堂免费视频| 欧美精品18videosex性欧美| 国产做受高潮69| 亚洲小视频在线观看| 国产福利精品av综合导导航| 亚洲在线视频福利| 亚洲免费伊人电影在线观看av| 欧美视频第一页| 亚洲va国产va天堂va久久| 亚洲香蕉成视频在线观看| 国产精品高潮在线| 91在线国产电影| 日韩精品视频在线免费观看| 91在线免费看网站| 日韩午夜在线视频| 国产精品激情自拍| 国产日韩欧美在线观看| 欧美精品电影免费在线观看| 久久99视频免费| 亚洲免费小视频| 精品国产老师黑色丝袜高跟鞋| 欧美视频在线免费| 国产日韩av高清| 亚洲女人天堂网| 亚洲国产高清福利视频| 国产日韩精品在线| 国产精品爽爽ⅴa在线观看| 日韩的一区二区| 久久91亚洲精品中文字幕奶水| 欧美大片va欧美在线播放| 在线不卡国产精品|