日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JDBC事务和JTA事务的区别 --包含spring事务 声明式事务

發(fā)布時(shí)間:2024/4/14 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JDBC事务和JTA事务的区别 --包含spring事务 声明式事务 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

2019獨(dú)角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>

一、事務(wù)概述
事務(wù)表示一個(gè)由一系列的數(shù)據(jù)庫操作組成的不可分割的邏輯單位,其中的操作要么全做要么全都不做。
與事務(wù)相關(guān)的操作主要有:
BEGIN TRANSACTION; 開始一個(gè)事務(wù),方法是:begin()
COMMIT;       提交一個(gè)事務(wù),方法是:commit()
ROLLBACK;      回滾一個(gè)事務(wù),方法是:rollback()
PREPARE;     ??準(zhǔn)備提交一個(gè)事務(wù),方法是:prepare()
二、事務(wù)的特性(ACID)
1、原子性:同一個(gè)事務(wù)的操作要么全部成功執(zhí)行,要么全部撤消
2、隔離性:事務(wù)的所有操作不會(huì)被其它事務(wù)干擾
3、一致性:在操作過程中不會(huì)破壞數(shù)據(jù)的完整性
4、時(shí)效性 :事務(wù)的結(jié)果必須持久保存于介質(zhì)上
三、事務(wù)處理方式
在JDBC連接中,使用命令聲明事務(wù)的開始、提交和取消。如前一章介紹的數(shù)據(jù)庫處理方式,它通過java.sql.Connection接口實(shí)現(xiàn),可以啟用AutoCommit。這種方式使用簡單,但性能較低。
利用JavaEE規(guī)范的JTA驅(qū)動(dòng)程序。這種方式性能更好,是EJB和JMS的常用方式。
Java EE 的分布式事務(wù)服務(wù)包括5個(gè)層次:事務(wù)管理器、應(yīng)用服務(wù)器、資源管理器、應(yīng)用程序、通信資源管理器。
事務(wù)管理器:完成事務(wù)管理
應(yīng)用服務(wù)器:為應(yīng)用提供服務(wù)
資源管理器:連接相應(yīng)的資源
應(yīng) 用程 序:需要使用事務(wù)的應(yīng)用
通信資源管理器:接收事務(wù)、傳播事務(wù)
四、JDBC和JTA事務(wù)區(qū)別
簡單的說 jta是多庫的事務(wù) jdbc是單庫的事務(wù)
1、jdbc事務(wù)
JDBC事務(wù)由Connnection對(duì)象控制管理,也就是說,事務(wù)管理實(shí)際上是在JDBC Connection中實(shí)現(xiàn)。事務(wù)周期限于Connection的生命周期。JDBC Connection 接口( java.sql.Connection )提供了兩種事務(wù)模式:自動(dòng)提交和手工提交。
自動(dòng)提交:缺省是自動(dòng)提交。一條對(duì)數(shù)據(jù)庫的更新(增/刪/改)代表一項(xiàng)事務(wù)操作,操作成功后,系統(tǒng)將自動(dòng)調(diào)用commit()來提交,否則將調(diào)用rollback()來回滾。
手工提交:通過調(diào)用setAutoCommit(false)來禁止自動(dòng)提交。這樣就可把多個(gè)數(shù)據(jù)庫操作的表達(dá)式作為一個(gè)事務(wù),在操作完成后調(diào) 用commit()來進(jìn)行整體提交,其中任何一個(gè)操作失敗,都不會(huì)執(zhí)行到commit(),并產(chǎn)生異常;此時(shí)可在異常捕獲時(shí)調(diào)用rollback()進(jìn)行回滾,以保持多次更新操作后,相關(guān)數(shù)據(jù)的一致性,示例如下:
try {
????conn =DriverManager.getConnection(...);
????conn.setAutoCommit(false);//禁止自動(dòng)提交,設(shè)置回滾點(diǎn)
????stmt = conn.createStatement();
????stmt.executeUpdate(...); //數(shù)據(jù)庫更新操作1
????stmt.executeUpdate(...); //數(shù)據(jù)庫更新操作2
????conn.commit(); //事務(wù)提交
}catch(Exception ex) {
????log.error(...);
????try {
????????conn.rollback(); //操作不成功則回滾
????}catch(Exception e) {
????????log.error(...);
????}
}
JDBC 事務(wù)的一個(gè)缺點(diǎn)是事務(wù)的范圍局限于一個(gè)數(shù)據(jù)庫連接。一個(gè) JDBC 事務(wù)不能跨越多個(gè)數(shù)據(jù)庫。
2、jta事務(wù)
JTA(Java Transaction API)提供了跨數(shù)據(jù)庫連接(或其他JTA資源)的事務(wù)管理能力。JTA事務(wù)管理則由JTA容器實(shí)現(xiàn),J2ee框架中事務(wù)管理器與應(yīng)用程序,資源管理器,以及應(yīng)用服務(wù)器之間的事務(wù)通訊。?
1)JTA的構(gòu)成
a、高層應(yīng)用事務(wù)界定接口,供事務(wù)客戶界定事務(wù)邊界的
b、X/Open XA協(xié)議(資源之間的一種標(biāo)準(zhǔn)化的接口)的標(biāo)準(zhǔn)Java映射,它可以使事務(wù)性的資源管理器參與由外部事務(wù)管理器控制的事務(wù)中
c、高層事務(wù)管理器接口,允許應(yīng)用程序服務(wù)器為其管理的應(yīng)用程序界定事務(wù)的邊界?
2)JTA的主要接口 
位于javax.transaction包中
a、UserTransaction接口:讓應(yīng)用程序得以控制事務(wù)的開始、掛起、提交、回滾等。由Java客戶端程序或EJB調(diào)用。
b、TransactionManager 接口:用于應(yīng)用服務(wù)器管理事務(wù)狀態(tài)
c、Transaction接口:用于執(zhí)行相關(guān)事務(wù)操作
d、XAResource接口:用于在分布式事務(wù)環(huán)境下,協(xié)調(diào)事務(wù)管理器和資源管理器的工作
e、Xid接口:為事務(wù)標(biāo)識(shí)符的Java映射
注:前3個(gè)接口位于Java EE版的類庫 javaee.jar 中,Java SE中沒有提供!UserTransaction是編程常用的接口
注意的是JTA只提供了接口,沒有具體的實(shí)現(xiàn)。
JTS(Java Transaction Service)是服務(wù)OTS的JTA的實(shí)現(xiàn)。簡單的說JTS實(shí)現(xiàn)了JTA接口,并且符合OTS的規(guī)范。
JTA的事務(wù)周期可橫跨多個(gè)JDBC Connection生命周期,對(duì)眾多Connection進(jìn)行調(diào)度,實(shí)現(xiàn)其事務(wù)性要求。
JTA可以處理任何提供符合XA接口的資源。包括:JDBC連接,數(shù)據(jù)庫,JMS,商業(yè)對(duì)象等等。
3)JTA編程的基本步驟
a、首先配置JTA ,建立相應(yīng)的數(shù)據(jù)源
b、建立事務(wù):通過創(chuàng)建UserTransaction類的實(shí)例來開始一個(gè)事務(wù)。代碼如下:
  Context ctx = new InitialContext(p) ;
 ??UserTransaction trans = (UserTransaction) ctx.lookup("javax. Transaction.UserTransaction")
c、開始事務(wù):代碼為 trans.begin() ;
d、找出數(shù)據(jù)源:從Weblogic Server上找到數(shù)據(jù)源,代碼如下:
 DataSource ds = (DataSource) ctx.lookup(“mysqldb") ;
e、建立數(shù)據(jù)庫連接:Connection mycon = ds.getConnection() ;
f、執(zhí)行SQL操作:stmt.executeUpdate(sqlS);
g、完成事務(wù):trans.commit(); / trans.rollback();
h、關(guān)閉連接:mycon.close() ;

轉(zhuǎn)載于:https://my.oschina.net/u/2401092/blog/1919764

總結(jié)

以上是生活随笔為你收集整理的JDBC事务和JTA事务的区别 --包含spring事务 声明式事务的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 免费观看成人在线视频 | 中文字幕首页 | 国产精品久久久久久网站 | 大桥未久恸哭の女教师 | 国产美女无遮挡永久免费观看 | 男人天堂视频在线观看 | 国产一区二区在线播放 | www精品国产 | 激情视频区 | 国产aa视频 | 禁止18在线观看 | 刘亦菲久久免费一区二区 | 成人小视频免费观看 | 午夜激情在线观看视频 | 天天干天 | 日本美女动态图 | 国产日皮视频 | 91网址入口 | 日本在线不卡一区二区三区 | 亚洲欧美在线视频免费 | 麻豆国产在线视频 | 激情爱爱网 | 无码精品人妻一区二区三区影院 | 亚洲一区在线看 | 免费久久一级欧美特大黄 | 特黄一级毛片 | 91福利视频免费观看 | 国产一区二区综合 | 青青草偷拍视频 | 欧美亚洲免费 | 亚洲色图28p| 久久99免费视频 | 欧美日韩一区二区不卡 | 亚洲一区二区激情 | 美女扒开腿男人爽桶 | 老司机精品视频在线播放 | 少妇视频在线播放 | 国精无码欧精品亚洲一区蜜桃 | 少妇特黄a一区二区三区88av | 91欧美在线视频 | 先锋影音男人 | 久久久综合久久久 | 午夜免费福利在线 | 日本一区二区高清视频 | 中文字幕在线观 | 久久久天堂 | 91成人精品国产刺激国语对白 | 国产成人91精品 | 亚洲激情欧美 | 精品国产一区二区三区久久久蜜臀 | 色综合天天综合综合国产 | 久久久国产精品视频 | 天天天色综合 | 天天综合91 | 麻豆三级在线观看 | 三级免费网址 | 日本在线h | 奇米狠狠| 欧美精品日韩在线观看 | 欧美成人精品一区二区 | 人人做人人爽人人爱 | 无码精品人妻一区二区三区湄公河 | 91一区二区在线 | 黄色国产网站 | 日日夜夜爽爽 | 国产欧美久久久 | 探花系列在线观看 | avtt中文字幕 | 午夜偷拍福利视频 | 久久久久久亚洲av无码专区 | 亚洲午夜伦理 | wwww黄色片 | 日韩精品系列 | 亚洲无吗在线 | 黄色大片毛片 | 麻豆网站在线播放 | 少妇做爰免费视频播放 | 葵司av电影| 国产又粗又黄又爽 | 欧美天天射 | 国产综合图片 | 制服丝袜影音先锋 | 夜夜夜夜爽 | 国产亚洲欧美一区二区 | 国偷自产视频一区二区久 | 亚洲av无码国产精品色午夜 | 精品久久久久久亚洲综合网站 | 亚洲超丰满肉感bbw 悠悠av | 中文精品无码中文字幕无码专区 | 青青草91视频 | 国产www网站| 狠狠干伊人| 99资源站 | 91成人国产综合久久精品 | 男女无遮挡网站 | 国产91在线视频观看 | 都市激情校园春色亚洲 | 天堂色区 | 成人一级生活片 |