Java数据库篇5——事务
生活随笔
收集整理的這篇文章主要介紹了
Java数据库篇5——事务
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java數據庫篇5——事務
1、什么是事務
事務是一個整體,由一條或者多條SQL 語句組成,這些SQL語句要么都執行成功,要么都執行失敗, 只要有 一條SQL出現異常,整個操作就會回滾,整個業務執行失敗
2、事物的特征
- 原子性:事務是不可再分的最小的操作單位
- 一致性:事物操作前后總量不變
- 隔離性:各個事務的執行互不干擾
- 持久性:持久性指事務一旦提交,對數據所做的任何改變,都要記錄到存儲器中
3、 事務隔離級別
3.1、并發產生的問題
| 臟讀(Dirty read) | 當一個事務正在訪問數據并且對數據進行了修改,而這種修改還沒有提交到數據庫中,這時另外一個事務也訪問了這個數據,使用了這個數據 |
| 不可重復讀(Unrepeatableread) | 指在一個事務內多次讀同一數據。在這個事務還沒有結束時,另一個事務也訪問該數據。那么,在第一個事務中的兩次讀數據之間,由于第二個事務的修改導致第一個事務兩次讀取的數據可能不太一樣 |
| 幻讀(Phantom read) | 幻讀與不可重復讀類似。它發生在一個事務(T1)讀取了幾行數據,接著另一個并發事務(T2)插入了一些數據時。在隨后的查詢中,第一個事務(T1)就會發現多了一些原本不存在的記錄,就好像發生了幻覺一樣 |
不可重復讀和幻讀區別:不可重復讀的重點是修改,幻讀的重點在于新增或者刪除
3.2、事務隔離級別
| 1 | 讀未提交 | read uncommitted | ? | ? | ? | |
| 2 | 讀已提交 | read committed | ? | ? | ? | Oracle和SQLServer |
| 3 | 可重復讀 | repeatable read | ? | ? | ? | MySql |
| 4 | 串行化 | serializable | ? | ? | ? |
總結
以上是生活随笔為你收集整理的Java数据库篇5——事务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c mysql web开发实例教程_We
- 下一篇: 香帅的北大金融学课笔记2 -- 银行