更新時間:2022-07-29 來源:黑馬程序員 瀏覽量:
在數據庫操作中,一項事務是由一條或多條操作數據庫的SQL語句組成的一個不可分割的工作單元。只有當事務中的所有操作都正常完成,整個事務才能被提交到數據庫中,如果有一項操作沒有完成,則整個事務會被撤銷。例如,在銀行的轉賬業務中,假定zhangsan從自己的賬號上把200元轉到lisi的賬號里,相關的SQL語句如下。
UPDATE ACCOUNT set MONEY=MONEY-200 WHERE NAME='zhangsan'; UPDATE ACCOUNT set MONEY=MONEY+200 WHERE NAME='lisi';
在上述SQL語句中,它們只有全部執行成功,才能提交整個事務。否則,如果zhangsan賬號的錢少了200,而lisi賬號的錢沒有變化,勢必會造成銀行轉賬業務的混亂。
針對JDBC處理事務的操作,在Connection接口中,提供了三個相關方法,具體如下。
(1)setAutoCommit(boolean autoCommit):設置是否自動提交事務。
(2)commint():提交事務。
(3)rollback:撤銷事務。
在上述三個方法中,默認情況下,事務是自動進行提交的。也就是說,如果每一條操作數據庫的SQL語句執行成功,系統會自動調用commint()方法來提交事務,否則就自動調用rollback()撤銷事務。