-
TransactionStatus接口介紹
TransactionStatus接口:提供了獲取事務狀態的方法(例如:hasSavepoint()事務是否有保存點,isCompleted()事務是否已經完成,isNewTransaction()是否是新的事務)。
查看全部 -
TransactionDefinition 定義事務傳播行為
事務傳播行為共有 7 種
查看全部 -
TransaxtionDefinition 定義事務隔離級別
查看全部 -
Spring 接口介紹 之 Spring 事務管理
查看全部 -
Spring事務管理的課程目標:
我們會學習到如下內容:
1.事務的回顧,在事務的回顧里邊,我們會回顧一下事務的基本的概念以及事務的一些相關的特性,
2.那么接下來我們會學習spring事務管理中的一組API,因為我們可以通過這組API來進行spring的事務管理
3.那么接下來我們就來學習spring中的編程式的事務管理,以及spring中的聲明式的事務管理。
那么這就是我們這節課的一個目標。
那么我們在說完了這節課的課程目標之后呢我們接下來來說一下,我們的第一個內容,就是事務的知識點的回顧。
什么是事務?以及事務的特性?
事務指的是邏輯上的一組操作,這組操作呢,要么全部成功,要么全部 失敗。那么我們在這里以一個銀行轉賬的案例來分析,
那么我們假設有兩個人,一個是張三,一個是李四,那么張三賬戶里有2千元,李四賬戶也有2千元,那現在張三要給李四進行轉賬1千元的操作,那么我們就會修改張三的賬戶,給張三的賬戶扣除掉1千元,然后我們要修改李四的賬戶,給李四的賬戶加1千元,那這樣的話,我們就完成了一個轉賬的操作。但這組操作呢,它不應該出現的情況就是張三轉了1千元之后,比如說突然間斷電了,或者出現了一些其他的特殊情況,那么這樣的話,張三的錢轉出去了,而李四沒收到,那這種情況是不應該出現的,所以說在這種情況里邊,我們的一組操作我們可以用一組事務來進行管理,那么這組操作一旦加入到了事務的管理操作里邊了,那么它們就必須一起成功,或者一起失敗,那么一起 成功的情況是什么呢 就是張三把錢轉出去了,李四也收到錢了,那如果是一起失敗呢,那一起失敗指的是張三的錢也沒轉出去,李四也沒收到錢,這種情況不允許出現張三錢轉了,李四沒收到的情況。所以說這是事物的概念。它就是用來保證我們這組操作要么全都成功,要么全都失敗,那么在事務當中呢,它是有一些相關的特性的,那事務一般都會有4大特性:這4大特性包含了原子性,一致性,隔離性,以及持久性,那什么是原子性呢,原子性指的是事務是一個不可分割的單位,事務中的操作要么都發生了,要么都不發生,那么我們都知道,物理中原子是最小的單位 ,那么它強調的是我們這一組單位是不能進行分割的,不能拿出來單獨去運行的,因為單獨運行的話,那都有可能會導致錯誤或者而失敗的產生,那么我們要把這一組呢要放在一個事務里邊,那么它們就能一起成功或者一起失敗了。那什么是事務的一致性呢?那事務的一致性指的是,我們事務執行的前后,數據的完整性,要保持一致,也就是說我們在事務執行之前,張三里邊有2千元,李四賬戶里也有2千元,那么總共是4千元,那當我們轉賬完成之后,那張三的賬戶里是1千元,而李四的賬戶里是3千元,那總共的金額也是4千元,所以說在執行的前后,我們的這種完整性,是一致的。它不能出現張三的錢被扣掉,李四沒收到這種情況。那什么是隔離性呢?隔離性強調的是,多個用戶并發訪問數據庫的時候,那么一個用戶的事務的執行過程當中,不應該受到其他事務的干擾,比如說我們有兩個事務在同時的操作數據庫,那你這邊比如說正在修改張三的記錄,而又有一個記錄進來修改張三這條記錄,那最后修改完事之后呢,會導致你這個記錄會被重復的修改,或者是一開始的事務改完的記錄被第二個事務給覆蓋掉了。那么我們的事務在執行的過程當中呢,盡量不要讓它收到其他事務的干擾,那這怎么做到呢?那數據庫里都有一個事務的隔離級別,我們可以通過設置隔離級別呢,來解決這種問題。還有一個就是事務的持久性,事物的持久性它指的是一個事務一旦被提交了,那它的記錄就被真正的修改到我們的數據庫里邊了。如果你的事務沒有提交,那你在執行了一個語句之后呢,這個數據還沒有被真正的修改到數據庫,或者是進入到數據庫,那么只有你的事務提交了之后,這條記錄才會被真正的修改或者進入到我們的數據庫當中,那這個就是事務的持久性。通過以上的講解,可以對事務有一個簡單的認識。
查看全部 -
事務的特性之 持久性:查看全部
-
隔離性:
事務一在修改一個賬戶時,事務二無法對其進行修改,以避免兩個事務發生重復修改或者導致修改記錄被覆蓋的問題
查看全部 -
事務的特性之 隔離性:查看全部
-
事務的特性之 一致性:
查看全部 -
事務的特性之 原子性查看全部
-
事務的特性: 四個
原子性、一致性、隔離性、持久性
查看全部 -
將轉賬的操作加入到一組事務之中進行管理,那么這一組轉賬的操作,要么一定成功,要么一定失敗
一起成功: 張三將錢轉出去了,而李四也收到了
一起失?。?張三錢沒有轉出去,李四也沒有收到錢
查看全部 -
轉賬可能出現的異常問題查看全部
-
模擬案例: 銀行轉賬
查看全部 -
什么是事務?查看全部
舉報