在方法上添加事務(wù),由事務(wù)統(tǒng)一管理,如圖:
創(chuàng)新互聯(lián)-專(zhuān)業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性?xún)r(jià)比扶余網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式扶余網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋扶余地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴(lài)。
可以捕獲異常,如果不對(duì)全部回滾。
//舉例子,比如你在寫(xiě)一個(gè)級(jí)聯(lián)刪除的方法的時(shí)候,為了保證數(shù)據(jù)完整性,刪除的時(shí)候一定要確定該刪的都刪了才行,否則就要回滾,下面是刪除方法的例子:public boolean delete(int sID) {//成功刪除會(huì)返回true;
dbc = new DataBaseConnection();//根據(jù)你自己的方式創(chuàng)建數(shù)據(jù)庫(kù)的連接
Connection con = dbc.getConnection();//得到Connection
try {
con.setAutoCommit(false);// 更改JDBC事務(wù)的默認(rèn)提交方式,默認(rèn)是true,是自動(dòng)提交;
dbc.executeUpdate("delete from xiao where ID=" + sID);//刪除
dbc.executeUpdate("delete from xiao_content where ID=" + sID);//刪除
dbc.executeUpdate("delete from xiao_affix where bylawid=" + sID);//刪除
con.commit();//提交JDBC事務(wù),如果沒(méi)問(wèn)題,這時(shí)才真正的刪除了;
con.setAutoCommit(true);// 恢復(fù)JDBC事務(wù)的默認(rèn)提交方式,這是個(gè)好習(xí)慣;
dbc.close();//關(guān)閉連接
return true;//刪除成功
}
catch (Exception exc) {
con.rollBack();//回滾JDBC事務(wù),出現(xiàn)異常,為保證數(shù)據(jù)完整性,此次操作回滾,不刪除;
exc.printStackTrace();//輸出異常信息;
dbc.close();//關(guān)閉連接
return false;//刪除失敗
}
}//順便說(shuō)一下,java中JDBC的事務(wù)管理,跟你用的是什么數(shù)據(jù)庫(kù)沒(méi)關(guān)系,用什么數(shù)據(jù)庫(kù)都是這樣;
--事務(wù)處理:
begin tran --開(kāi)始處理數(shù)據(jù)時(shí),開(kāi)啟事務(wù)
--下面是具體的處理語(yǔ)句
insert into 表 values(1)
if @@error0 --如果處理語(yǔ)句出錯(cuò),回滾事務(wù)
begin
rollback tran
goto lbexit
end
update 表 set 字段=1
if @@error0 --如果處理語(yǔ)句出錯(cuò),回滾事務(wù)
begin
rollback tran
goto lbexit
end
commit tran --所有執(zhí)行成功,提交事務(wù)
lbexit:
JAVA的話(huà),可以在連接對(duì)象上啟用事務(wù)
樓主這個(gè)回滾機(jī)制,針對(duì)的是java的事務(wù)管理吧! 事務(wù)處理之前必須進(jìn)行取消自動(dòng)提交,在默認(rèn)情況下,所有的數(shù)據(jù)都是被默認(rèn)提交上去的,就是說(shuō)只要一執(zhí)行更新就提交。
取消自動(dòng)提交之后,如果最后程序的代碼(批處理代碼)沒(méi)有出錯(cuò),則可以進(jìn)行人為的手工提交。最后如果程序出現(xiàn)了錯(cuò)誤,則應(yīng)該進(jìn)行回滾。
瑭錦Tanjurd解釋一組業(yè)務(wù)整體處理的行為叫一個(gè)事務(wù)。這一組的業(yè)務(wù)都能成功處理,我們就可以把這個(gè)事務(wù)提交來(lái)保存你已做的行為結(jié)果。但如果一組中有任何的差錯(cuò)出現(xiàn)的話(huà),我們就認(rèn)為這事務(wù)不成功,需要回滾來(lái)撤消之前的操作。舉例:你去銀行轉(zhuǎn)賬,轉(zhuǎn)賬我們有兩步吧,從你賬戶(hù)中取出錢(qián)再往他賬戶(hù)中加錢(qián)。那這兩步銀行是必須要確保正確無(wú)誤的進(jìn)行的。要被看做成一個(gè)事務(wù)。其中任何一步出錯(cuò)就算是轉(zhuǎn)賬失敗,但可能你這時(shí)是已經(jīng)從你賬戶(hù)中扣了錢(qián)了,又沒(méi)往他賬戶(hù)里加錢(qián)?怎么辦算了?你不肯吧。所以銀行會(huì)事務(wù)回滾,不保存你剛才的操作,即恢復(fù)到你沒(méi)轉(zhuǎn)賬之前的狀態(tài)