全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)技術(shù)文章正文

Java技能培訓(xùn):JDBC處理事務(wù)的步驟

更新時(shí)間:2022-07-29 來(lái)源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  在數(shù)據(jù)庫(kù)操作中,一項(xiàng)事務(wù)是由一條或多條操作數(shù)據(jù)庫(kù)的SQL語(yǔ)句組成的一個(gè)不可分割的工作單元。只有當(dāng)事務(wù)中的所有操作都正常完成,整個(gè)事務(wù)才能被提交到數(shù)據(jù)庫(kù)中,如果有一項(xiàng)操作沒(méi)有完成,則整個(gè)事務(wù)會(huì)被撤銷(xiāo)。例如,在銀行的轉(zhuǎn)賬業(yè)務(wù)中,假定zhangsan從自己的賬號(hào)上把200元轉(zhuǎn)到lisi的賬號(hào)里,相關(guān)的SQL語(yǔ)句如下。

UPDATE ACCOUNT set MONEY=MONEY-200 WHERE NAME='zhangsan';
UPDATE ACCOUNT set MONEY=MONEY+200 WHERE NAME='lisi';

  在上述SQL語(yǔ)句中,它們只有全部執(zhí)行成功,才能提交整個(gè)事務(wù)。否則,如果zhangsan賬號(hào)的錢(qián)少了200,而lisi賬號(hào)的錢(qián)沒(méi)有變化,勢(shì)必會(huì)造成銀行轉(zhuǎn)賬業(yè)務(wù)的混亂。

  針對(duì)JDBC處理事務(wù)的操作,在Connection接口中,提供了三個(gè)相關(guān)方法,具體如下。

  (1)setAutoCommit(boolean autoCommit):設(shè)置是否自動(dòng)提交事務(wù)。

  (2)commint():提交事務(wù)。

  (3)rollback:撤銷(xiāo)事務(wù)。

  在上述三個(gè)方法中,默認(rèn)情況下,事務(wù)是自動(dòng)進(jìn)行提交的。也就是說(shuō),如果每一條操作數(shù)據(jù)庫(kù)的SQL語(yǔ)句執(zhí)行成功,系統(tǒng)會(huì)自動(dòng)調(diào)用commint()方法來(lái)提交事務(wù),否則就自動(dòng)調(diào)用rollback()撤銷(xiāo)事務(wù)。

分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!