【GT-安卓應用開發之事務使用】

前言:雖然在實際開發的過程中用到事務的機會並不是很多,但是有兩次接觸到事務對我印象比較深刻:一次是在校期間學習數據庫的時候,當時老師講解了其ACID四個特性便感覺很有興趣;另外一次,是在一次面試的時候,面試官問我對事務的認識。

            那什麼是事務呢?事務可以簡單的理解爲應用程序中的一系列操作,但是這些操作要麼全部完成要麼全部不做,這也是事務的四大特性之一(原子性);事務有兩種結果,一種是所有步驟全部完成之後提交事務,另外一種則是某一步驟出現問題的時候,回滾,撤銷之前所做的所有操作。

            ACID分別又是什麼呢?前面說了ACID是事務對應的四個特性分別對應原子性、一致性、隔離性和持續性:

            原子性(Atomicity),事務所有的操作要麼全部完成,要麼全都不做,事務進行所有的步驟一旦有一個步驟出了問題,則撤銷之前所有的操作回到最初的狀態;

            一致性(Consistency),事務必須保證系統處於一致的狀態,簡單地說就是假設有多個並行事務,其處理結果應該與串行結果一致,例如轉賬,無論多少人彼此之間進行金額的流通,但是其總金額是不會變化的;

            隔離性(Isolation),這一特性也可稱爲串行化,也就是在特定的時間內,系統只會運行一個事務;

            持久性(Durability),所謂持久性實際上就是事務一旦完成,事務所進行的一系列步驟、操作會被記錄在數據庫中且無法回滾。

            從前面的描述,我們大致瞭解事務主要是在進行數據庫操作的時候會涉及到,安卓開發通常會涉及到衆多的數據庫操作,下面就舉個例子:

           Step1,創建數據庫操作類,主要就是創建數據庫以及User表,代碼如下:

             

               Step2,初始化操作類並開啓一個事務代碼如下:

               

               Step3,處理事務步驟(手動拋出一個異常,測試是否回滾)

               

                Step4,測試

                在Step3中,正常結果是會回滾的,將異常註釋掉,就會順利執行完事務;還有一種情況,則是不使用事務,還是在Step3手動拋出異常,結果則會使刪除正常,但是沒有添加新數據

發佈了52 篇原創文章 · 獲贊 3 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章