Spring事務管理1

事務的基本的概念以及事務的一些相關的特性,spring

2.學習spring事務管理中的一組API,由於咱們能夠經過這組API來進行spring的事務管理數據庫

3.學習spring中的編程式的事務管理,以及spring中的聲明式的事務管理。編程

什麼是事務?以及事務的特性?併發

事務指的是邏輯上的一組操做,這組操做呢,要麼所有成功,要麼所有 失敗。那麼咱們在這裏以一個銀行轉帳的案例來分析,學習

那麼咱們假設有兩我的,一個是張三,一個是李四,那麼張三帳戶裏有2千元,李四帳戶也有2千元,那如今張三要給李四進行轉帳1千元的操做,那麼咱們就會修改張三的帳戶,給張三的帳戶扣除掉1千元,而後咱們要修改李四的帳戶,給李四的帳戶加1千元,那這樣的話,咱們就完成了一個轉帳的操做。但這組操做呢,它不該該出現的狀況就是張三轉了1千元以後,好比說忽然間斷電了,或者出現了一些其餘的特殊狀況,那麼這樣的話,張三的錢轉出去了,而李四沒收到,那這種狀況是不該該出現的,因此說在這種狀況裏邊,咱們的一組操做咱們能夠用一組事務來進行管理,那麼這組操做一旦加入到了事務的管理操做裏邊了,那麼它們就必須一塊兒成功,或者一塊兒失敗,那麼一塊兒 成功的狀況是什麼呢 就是張三把錢轉出去了,李四也收到錢了,那若是是一塊兒失敗呢,那一塊兒失敗指的是張三的錢也沒轉出去,李四也沒收到錢,這種狀況不容許出現張三錢轉了,李四沒收到的狀況。因此說這是事物的概念。它就是用來保證咱們這組操做要麼全都成功,要麼全都失敗,那麼在事務當中呢,它是有一些相關的特性的,那事務通常都會有4大特性:這4大特性包含了原子性,一致性,隔離性,以及持久性,那什麼是原子性呢,原子性指的是事務是一個不可分割的單位,事務中的操做**要麼都發生了,要麼都不發生,**那麼咱們都知道,物理中原子是最小的單位 ,那麼它強調的是咱們這一組單位是不能進行分割的,不能拿出來單獨去運行的,由於單獨運行的話,那都有可能會致使錯誤或者而失敗的產生,那麼咱們要把這一組呢要放在一個事務裏邊,那麼它們就能一塊兒成功或者一塊兒失敗了。那什麼是事務的一致性呢?那事務的一致性指的是,咱們事務執行的先後,數據的完整性,要保持一致,也就是說咱們在事務執行以前,張三裏邊有2千元,李四帳戶裏也有2千元,那麼總共是4千元,那當咱們轉帳完成以後,那張三的帳戶裏是1千元,而李四的帳戶裏是3千元,那總共的金額也是4千元,因此說在執行的先後,咱們的這種完整性,是一致的。它不能出現張三的錢被扣掉,李四沒收到這種狀況。那什麼是隔離性呢?**隔離性強調的是,多個用戶併發訪問數據庫的時候,那麼一個用戶的事務的執行過程中,不該該受到其餘事務的干擾,好比說咱們有兩個事務在同時的操做數據庫,那你這邊好比說正在修改張三的記錄,而又有一個記錄進來修改張三這條記錄,那最後修改完事以後呢,會致使你這個記錄會被重複的修改,或者是一開始的事務改完的記錄被第二個事務給覆蓋掉了。那麼咱們的事務在執行的過程中呢,儘可能不要讓它收到其餘事務的干擾,那這怎麼作到呢?那數據庫裏都有一個事務的隔離級別,咱們能夠經過設置隔離級別呢,來解決這種問題。**還有一個就是事務的持久性,事物的持久性它指的是一個事務一旦被提交了,那它的記錄就被真正的修改到咱們的數據庫裏邊了。若是你的事務沒有提交,那你在執行了一個語句以後呢,這個數據尚未被真正的修改到數據庫,或者是進入到數據庫,那麼只有你的事務提交了以後,這條記錄纔會被真正的修改或者進入到咱們的數據庫當中,那這個就是事務的持久性。經過以上的講解,能夠對事務有一個簡單的認識。事務

相關文章
相關標籤/搜索