Hibernate的事務的隔離性

2021-08-18 13:32:57 字數 1157 閱讀 2854

一致性:事務必須使資料庫從乙個一致性狀態變換到另外乙個一致性狀態。

隔離性:指多執行緒環境下,乙個執行緒中的事務不能被其他執行緒中的事務打擾

永續性:事務一旦提交,就應該被永久儲存起來。

不可重複讀(虛讀):指乙個執行緒中的事務讀取到了另外乙個執行緒中提交的update的資料。

幻讀:指乙個執行緒中的事務讀取到了另外乙個執行緒中提交的insert的資料。

丟失更新:撤銷乙個事務時,把其他事務已提交的更新資料覆蓋。

髒讀(dirty read)

不可重複讀(nonrepeatable read)

幻讀(phantom read)

未提交讀(read uncommitted)

可能可能

可能已提交讀(read committed)

不可能可能

可能可重複讀(repeatable read)

不可能不可能

可能可序列化(serializable )

不可能不可能

不可能

設定隔離級別

每個資料庫連線都有預設的隔離級別,通常是讀已提交或可重複讀.可以通

過資料庫配置設定,也可在應用程式中設定.例如hibernate:

注意:mysql

mysql預設的事務處理級別是'repeatable-read',也就是可重複讀

1.檢視當前會話隔離級別

select @@tx_isolation;

2.檢視系統當前隔離級別

select @@global.tx_isolation;

3.設定當前會話隔離級別

set session transaction isolatin level repeatable read;

4.設定系統當前隔離級別

set global transaction isolation level repeatable read;

oracle

oracle資料庫支援read committed 和 serializable這兩種事務隔離級別。

預設系統事務隔離級別是read committed,也就是讀已提交

事務的隔離級別舉例 事務的隔離級別

乙個事務是乙個完整的業務邏輯單元,不能再分,要麼全部執行成功,要麼全部失敗。比如 a給b轉賬100元,a的銀行卡就會少100元,b的銀行卡就會多100元,整個過程要麼全部執行成功,要麼全部失敗。a 原子性。事務是最小的業務邏輯單元。b 一致性。乙個事務必須保證多條dml語句同時成功或失敗。c 隔離性...

事務的隔離級別舉例 MySQL中的事務隔離級別

mysql中的事務隔離級別 事務就是對一系列的資料庫操作進行統一的提交或者回滾操作,如果插入成功,那麼一起成功,如果中間一條出現異常,就回滾之前的所有操作。這一點和redis中的事務不同的是,redis中的任意命令執行失敗,其餘命令依然會被執行。事務的特性 1.原子性 atomicity 乙個事務中...

事務的隔離級別舉例 JDBC 事務隔離級別

本文總結了 jdbc 事務隔離級別。事務隔離級別定義了在乙個事務中,哪些資料是對當前執行的語句 可見 的。在併發訪問資料庫時,事務隔離級別定義了多個事務之間對於同個目標資料來源訪問時的可交叉程度。可交叉程度可分為以下幾類。可交叉程度 dirty reads 髒讀 當乙個事務能看見另外乙個事務未提交的...