青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

Java基礎:Java事務處理類型/差異總結

一、什么是Java事務

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

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

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

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

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

二、為什么需要事務

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

三、Java事務的類型

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

1JDBC事務

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 事務不能跨越多個數據庫。

2JTA(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

四、三種事務差異

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

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

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

五、總結

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

 

 

 

posted on 2009-08-06 18:11 肥仔 閱讀(147) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲综合色激情五月| 国产精品视频区| 9色精品在线| 亚洲国产精品美女| 欧美成人日本| 亚洲国产精品一区| 亚洲激情小视频| 9人人澡人人爽人人精品| 一二三四社区欧美黄| 亚洲影视在线| 久久久久免费观看| 欧美欧美天天天天操| 欧美另类一区| 国产麻豆综合| 亚洲国产天堂久久国产91| 亚洲乱码一区二区| 亚洲欧美中文字幕| 牛牛影视久久网| 99re8这里有精品热视频免费| 一区二区三区四区精品| 欧美在线www| 亚洲香蕉网站| 国内视频精品| 国产精品国产馆在线真实露脸| 欧美性猛交一区二区三区精品| 国产精品自拍一区| 一区二区在线观看视频| 99国产精品私拍| 久久久xxx| 日韩亚洲欧美中文三级| 久久久999精品免费| 欧美精品日本| 国产真实乱子伦精品视频| 一区二区不卡在线视频 午夜欧美不卡在 | 午夜精品久久久久久久99樱桃| 久久精品在线视频| 国产精品成人免费精品自在线观看| 黑人一区二区| 欧美亚洲免费在线| 亚洲精品一区在线观看| 久久躁日日躁aaaaxxxx| 国产日韩精品入口| 亚洲综合日韩| 日韩系列欧美系列| 欧美华人在线视频| 亚洲第一视频| 久久嫩草精品久久久精品一| 亚洲一区二区3| 欧美色欧美亚洲另类二区 | 在线不卡中文字幕| 久久精品国亚洲| 亚洲午夜电影在线观看| 欧美日韩不卡在线| 9i看片成人免费高清| 欧美大片在线看| 老牛影视一区二区三区| 伊人久久大香线蕉av超碰演员| 欧美在线视频不卡| 性欧美暴力猛交69hd| 国产精品一区二区久久久久| 亚洲欧美成人一区二区三区| 99热精品在线| 国产精品久久久久久久久动漫 | 国产精品网曝门| 午夜精品久久久99热福利| 一本色道久久加勒比精品| 最新中文字幕一区二区三区| 亚洲大胆人体在线| 久久精品国产亚洲aⅴ| 国产在线播精品第三| 久久精品亚洲精品| 欧美淫片网站| 亚洲大胆美女视频| 亚洲国产另类久久精品| 欧美久久久久久久久久| 中文精品视频| 性视频1819p久久| 有码中文亚洲精品| 欧美激情一区二区三区不卡| 欧美黄色视屏| 午夜免费日韩视频| 久久精品视频在线看| 亚洲人成在线播放网站岛国| 日韩亚洲欧美精品| 国产日韩欧美一区二区三区在线观看| 久久久91精品国产一区二区三区 | 亚洲欧美日韩中文视频| 韩国美女久久| 最新国产の精品合集bt伙计| 国产精品国产a| 久久在线播放| 欧美人与禽猛交乱配视频| 欧美一区二区三区四区在线观看地址 | 日韩视频三区| 一区二区三区你懂的| 影音先锋日韩有码| 一本久道综合久久精品| 韩国av一区二区三区在线观看| 亚洲国产一区二区a毛片| 国产精品日韩欧美| 亚洲高清av| 国产免费成人| 亚洲精品乱码久久久久久按摩观| 国产欧美日韩亚洲| 亚洲狠狠丁香婷婷综合久久久| 国产欧美日韩三区| 亚洲人成在线免费观看| 国产又爽又黄的激情精品视频| 亚洲精品久久久久久久久久久| 国产一区99| 亚洲一级电影| 亚洲最黄网站| 欧美成人午夜激情视频| 久久久亚洲高清| 国产精品亚洲成人| 亚洲精品自在久久| 亚洲日本免费| 久久在线播放| 久久躁狠狠躁夜夜爽| 国产精品视频免费| 一区二区三区黄色| 在线亚洲电影| 欧美日韩国产一区二区| 亚洲狠狠丁香婷婷综合久久久| 在线不卡中文字幕| 久久精品卡一| 久久免费高清视频| 日韩视频不卡| 国产欧美日韩中文字幕在线| 99亚洲视频| 亚洲精品中文字幕在线观看| 久热re这里精品视频在线6| 久久精品国产一区二区三区免费看| 国产精品久久国产精品99gif| 日韩视频不卡中文| 亚洲少妇中出一区| 欧美性猛交xxxx免费看久久久 | 日韩视频在线播放| 美女999久久久精品视频| 老司机凹凸av亚洲导航| 国产在线国偷精品产拍免费yy| 性色一区二区三区| 久久一区二区三区超碰国产精品| 韩国三级电影一区二区| 久久视频在线看| 亚洲国产成人精品女人久久久| 亚洲精品乱码久久久久久蜜桃91| 牛牛精品成人免费视频| 亚洲国产精品专区久久| 中文国产一区| 国产精品国产三级国产普通话蜜臀| 一区二区三区日韩精品| 欧美亚洲一区| 一区二区三区在线不卡| 久久人人爽人人爽| 91久久久久久| 午夜电影亚洲| 激情综合激情| 欧美精品自拍| 亚洲欧美日韩一区二区在线 | 国产亚洲免费的视频看| 久久精品在线视频| 亚洲人成77777在线观看网| 亚洲一区精品视频| 国产在线欧美| 欧美精品成人91久久久久久久| 99精品视频免费在线观看| 久久精品九九| 亚洲美女视频网| 国产视频观看一区| 欧美高清视频www夜色资源网| 亚洲视频自拍偷拍| 欧美gay视频激情| 一区二区三区日韩欧美精品| 国产一区二区毛片| 欧美精品一区二区在线播放| 亚洲欧美一区二区三区久久| 欧美激情视频在线免费观看 欧美视频免费一 | 性做久久久久久久免费看| 在线日本欧美| 国产精品每日更新| 欧美高清在线一区| 欧美影院精品一区| 怡红院精品视频| 西西裸体人体做爰大胆久久久| 欧美二区在线播放| 亚洲欧美综合| 91久久国产精品91久久性色| 久久不见久久见免费视频1| 亚洲黄一区二区| 国产视频一区二区三区在线观看| 欧美大片免费久久精品三p| 欧美一区二区三区四区在线| 99国产精品99久久久久久粉嫩| 欧美大片在线观看一区| 久久丁香综合五月国产三级网站| 9久re热视频在线精品| 好看的av在线不卡观看| 国产欧美精品久久| 国产精品实拍|