事務就是對一系列的資料庫操作進行統一的提交或回滾操作,比如說做一個轉賬功能,要更改帳戶兩邊的資料,這時候就必須要用事務才能算是嚴謹的做法。要麼成功,要麼失敗,保持資料一致性。如果中間有一個操作出現異常,那麼回滾之前的所有操作。 這樣有什麼好處呢。 這樣可以防止在一些意外(例如說突然斷電)的情況下出現亂資料,防止資料庫資料出現問題。這邊加了錢,那邊卻還是一樣的數,這就完了。要是開放一個網上交易的平臺,這樣就會出大問題的! 還有其他的一些操作,像是要新增多條資料,如果程式要求必須全部正確才能插入的話,事務又起大作用了。 等等。。。開發中為了避免這種情況一般都會進行事務管理。 在JDBC中是透過Connection物件進行事務管理的,預設是自動提交事務,可以手工將自動提交關閉,透過commit方法進行提交,rollback方法進行回滾,如果不提交,則資料不會真正的插入到資料庫中。 Hibernate中是透過Transaction進行事務管理,處理方法與JDBC中類似。 Spring中也有自己的事務管理機制,使用TransactionMananger進行管理,可以透過Spring的注入來完成此功能。
事務就是對一系列的資料庫操作進行統一的提交或回滾操作,比如說做一個轉賬功能,要更改帳戶兩邊的資料,這時候就必須要用事務才能算是嚴謹的做法。要麼成功,要麼失敗,保持資料一致性。如果中間有一個操作出現異常,那麼回滾之前的所有操作。 這樣有什麼好處呢。 這樣可以防止在一些意外(例如說突然斷電)的情況下出現亂資料,防止資料庫資料出現問題。這邊加了錢,那邊卻還是一樣的數,這就完了。要是開放一個網上交易的平臺,這樣就會出大問題的! 還有其他的一些操作,像是要新增多條資料,如果程式要求必須全部正確才能插入的話,事務又起大作用了。 等等。。。開發中為了避免這種情況一般都會進行事務管理。 在JDBC中是透過Connection物件進行事務管理的,預設是自動提交事務,可以手工將自動提交關閉,透過commit方法進行提交,rollback方法進行回滾,如果不提交,則資料不會真正的插入到資料庫中。 Hibernate中是透過Transaction進行事務管理,處理方法與JDBC中類似。 Spring中也有自己的事務管理機制,使用TransactionMananger進行管理,可以透過Spring的注入來完成此功能。