在資料庫操作中,一項事務是指由一條或多條對資料庫更新的sql語句所組成的乙個不可分割的工作單元。只有當事務中的所有操作都正常完成了,整個事務才能被提交到資料庫,如果有一項操作沒有完成,就必須撤消整個事務。
update account set monery=monery-1000 where name=』zhangsan』
update account set monery=monery+1000 where name=』lisi』
這個兩條語句必須作為乙個完成的事務來處理。只有當兩條都成功執行了,才能提交這個事務。如果有一句失敗,整個事務必須撤消。
在connection類中提供了3個控制事務的方法:
(1) setautocommit(boolean autocommit):設定是否自動提交事務;
(2) commit();提交事務;
(3) rollback();撤消事務;
在jdbc api中,預設的情況為自動提交事務,也就是說,每一條對資料庫的更新的sql語句代表一項事務,操作成功後,系統自動呼叫commit()來提交,否則將呼叫rollback()來撤消事務。
在jdbc api中,可以通過呼叫setautocommit(false) 來禁止自動提交事務。然後就可以把多條更新資料庫的sql語句做為乙個事務,在所有操作完成之後,呼叫commit()來進行整體提交。倘若其中一項sql操作失敗,就不會執行commit()方法,而是產生相應的sqlexception,此時就可以捕獲異常**塊中呼叫rollback()方法撤消事務。
trycatch(exception ex)catch(exception e)
}finallycatch(exception e)
}
PHP MYSQLI中事務處理
mysql事務處理讓所有sql語句執行成功後才去處理,如果有一條沒有成功或者報錯就會回滾事務,防止敏感操作處理失敗。mysql中只有innodb和bdb型別的資料表才能支援事務處理!其它型別是不支援的!mysqli autocommit false 關閉自動提交功能 sql update users...
PHP MYSQLI中事務處理
mysql事務處理讓所有sql語句執行成功後才去處理,如果有一條沒有成功或者報錯就會回滾事務,防止敏感操作處理失敗。mysql中只有innodb和bdb型別的資料表才能支援事務處理!其它型別是不支援的!mysqli autocommit false 關閉自動提交功能 sql update users...
C 中的事務處理
一般的資料庫事務控制要求事務裡所做的操作必須在同乙個資料庫內,這樣在出現錯誤的時候才能回滾 rllback 到初始狀態。這就存在乙個問題,在分布式應用程式中,往往需要同時操作多個資料庫,使用資料庫本身的事務處理,很難滿足程式對事務控制的要求。在com 中,提供了完整的事務服務,可以利用它來完成在分布...