摘要:隔離級(jí)別個(gè)等級(jí)的事務(wù)隔離級(jí)別,在相同的數(shù)據(jù)環(huán)境下,使用相同的輸入,執(zhí)行相同的工作,根據(jù)不同的隔離級(jí)別,可以導(dǎo)致不同的結(jié)果。不同事務(wù)隔離級(jí)別能夠解決的數(shù)據(jù)并發(fā)問題的能力是不同的。
Java知識(shí)點(diǎn)總結(jié)(JDBC-事務(wù))
@(Java知識(shí)點(diǎn)總結(jié))[Java, JDBC]
事務(wù) 事務(wù)基本概念一組要么同時(shí)執(zhí)行成功,要么同時(shí)執(zhí)行失敗的 SQL 語句。是數(shù)據(jù)庫操作的一個(gè)執(zhí)行單元!
事務(wù)開始于:
執(zhí)行 commit 或 rollback 語句。
執(zhí)行一條 DDL 語句,例如 create table 語句;在這種情況下,會(huì)自動(dòng)執(zhí)行 commit 語句。
執(zhí)行一條 DCL 語句,例如 grant 語句;在這種情況下,會(huì)自動(dòng)執(zhí)行 commit 語句。
斷開與數(shù)據(jù)庫的連接。
執(zhí)行了一條 DML 語句,該語句卻失敗了;在這種情況下,會(huì)為這個(gè)無效的 DML 語句執(zhí)行 rollback 語句。
事務(wù)的四大特點(diǎn)(ACID)
atomicity(原子性)
表示一個(gè)事務(wù)內(nèi)的所有操作是一個(gè)整體, 要么全部成功,要么全失敗
consistency(一致性)
表示一個(gè)事務(wù)內(nèi)有 一個(gè)操作失敗時(shí) ,所有的更改過的數(shù)據(jù)都必須 回滾到修改前的狀態(tài) ;
isolation(隔離性)
事務(wù)查看數(shù)據(jù)時(shí) 數(shù)據(jù)所處的狀態(tài) ,要么是另一并發(fā)事務(wù) 修改它之前 的狀態(tài),要么是另一事務(wù) 修改它之后 的狀態(tài),事務(wù)不會(huì)查看中間狀態(tài)的數(shù)據(jù)。
durability(持久性)
持久性事務(wù)完成之后,它對(duì)于系統(tǒng)的 影響是永久性的 。
事務(wù)并發(fā)處理可能引起的問題讀臟(dirty read):一個(gè)事務(wù)讀取了另一個(gè)事務(wù)尚未提交的數(shù)據(jù),
不可重復(fù)讀(non-repeatable read):一個(gè)事務(wù)的操作導(dǎo)致另一個(gè)事務(wù)前后兩次讀取到不同的數(shù)據(jù)
幻讀(phantom read):一個(gè)事務(wù)的操作導(dǎo)致另一個(gè)事務(wù)前后兩次查詢的結(jié)果數(shù)據(jù)量不同。
隔離級(jí)別4個(gè)等級(jí)的事務(wù)隔離級(jí)別,在相同的數(shù)據(jù)環(huán)境下,使用相同的輸入,執(zhí)行相同的工作,根據(jù)不同的隔離級(jí)別,可以導(dǎo)致不同的結(jié)果。不同事務(wù)隔離級(jí)別能夠解決的數(shù)據(jù)并發(fā)問題的能力是不同的。
SERIALIZABLE(串行化)
不會(huì)出現(xiàn)任何并發(fā)問題,因?yàn)樗菍?duì)同一數(shù)據(jù)的訪問是串行的,非并發(fā)訪問的;
性能最差
REPEATABLE READ(可重復(fù)讀)(MySQL)
防止臟讀和不可重復(fù)讀,不能處理幻讀
性能比SERIALIZABLE好
READ COMMITTED(讀已提交數(shù)據(jù))(Oracle)
防止臟讀,不能處理不可重復(fù)讀和幻讀;
性能比REPEATABLE READ好
READ UNCOMMITTED(讀未提交數(shù)據(jù))
可能出現(xiàn)任何事物并發(fā)問題,什么都不處理。
性能最好
MySQL的默認(rèn)隔離級(jí)別為Repeatable read,可以通過下面語句查看:
SELECT @@`TX_ISOLATION`;
也可以通過下面語句來設(shè)置當(dāng)前連接的隔離級(jí)別:
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ ;//[4選1]
con.setTransactionIsolation(int level) :參數(shù)可選值如下:
Connection.TRANSACTION_READ_UNCOMMITTED; Connection.TRANSACTION_READ_COMMITTED; Connection.TRANSACTION_REPEATABLE_READ; Connection.TRANSACTION_READ_SERIALIZABLE。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/71462.html
摘要:前言由于寫的文章已經(jīng)是有點(diǎn)多了,為了自己和大家的檢索方便,于是我就做了這么一個(gè)博客導(dǎo)航。 前言 由于寫的文章已經(jīng)是有點(diǎn)多了,為了自己和大家的檢索方便,于是我就做了這么一個(gè)博客導(dǎo)航。 由于更新比較頻繁,因此隔一段時(shí)間才會(huì)更新目錄導(dǎo)航哦~想要獲取最新原創(chuàng)的技術(shù)文章歡迎關(guān)注我的公眾號(hào):Java3y Java3y文章目錄導(dǎo)航 Java基礎(chǔ) 泛型就這么簡(jiǎn)單 注解就這么簡(jiǎn)單 Druid數(shù)據(jù)庫連接池...
摘要:常見面試題操作數(shù)據(jù)庫的步驟操作數(shù)據(jù)庫的步驟注冊(cè)數(shù)據(jù)庫驅(qū)動(dòng)。可以防止注入,安全性高于。只有隔離級(jí)別才能防止產(chǎn)生幻讀。對(duì)象維護(hù)了一個(gè)游標(biāo),指向當(dāng)前的數(shù)據(jù)行。一共有三種對(duì)象。 以下我是歸納的JDBC知識(shí)點(diǎn)圖: showImg(https://segmentfault.com/img/remote/1460000013312769); 圖上的知識(shí)點(diǎn)都可以在我其他的文章內(nèi)找到相應(yīng)內(nèi)容。 JDBC...
摘要:我在面試前針對(duì)基礎(chǔ)也花了不少的時(shí)間,期間也將自己寫過的博文粗略地刷了一遍,同時(shí)也在網(wǎng)上找了不少比較好的資料部分是沒看完的。看面試題也是校驗(yàn)自己是否真正理解了這個(gè)知識(shí)點(diǎn),也很有可能會(huì)有新的收獲。 一、前言 只有光頭才能變強(qiáng) 回顧前面: 廣州三本找Java實(shí)習(xí)經(jīng)歷 上一篇寫了自己面試的經(jīng)歷和一些在面試的時(shí)候遇到的題目(筆試題和面試題)。 我在面試前針對(duì)Java基礎(chǔ)也花了不少的時(shí)間,期間也將...
摘要:和事務(wù)的關(guān)系關(guān)系型數(shù)據(jù)庫某些消息隊(duì)列等產(chǎn)品或中間件稱為事務(wù)性資源,因?yàn)樗鼈儽旧碇С质聞?wù),也能夠處理事務(wù)。事務(wù)的傳播特性,,,,,,強(qiáng)制要求要有一個(gè)物理事務(wù)。外圍事務(wù)不會(huì)被內(nèi)部事務(wù)的回滾狀態(tài)影響。不支持當(dāng)前事務(wù)。 Spring和事務(wù)的關(guān)系 關(guān)系型數(shù)據(jù)庫、某些消息隊(duì)列等產(chǎn)品或中間件稱為事務(wù)性資源,因?yàn)樗鼈儽旧碇С质聞?wù),也能夠處理事務(wù)。 Spring很顯然不是事務(wù)性資源,但是它可...
摘要:本文是作者自己對(duì)中線程的狀態(tài)線程間協(xié)作相關(guān)使用的理解與總結(jié),不對(duì)之處,望指出,共勉。當(dāng)中的的數(shù)目而不是已占用的位置數(shù)大于集合番一文通版集合番一文通版垃圾回收機(jī)制講得很透徹,深入淺出。 一小時(shí)搞明白自定義注解 Annotation(注解)就是 Java 提供了一種元程序中的元素關(guān)聯(lián)任何信息和著任何元數(shù)據(jù)(metadata)的途徑和方法。Annotion(注解) 是一個(gè)接口,程序可以通過...
閱讀 3373·2021-11-22 09:34
閱讀 2872·2021-10-09 09:43
閱讀 1454·2021-09-24 09:47
閱讀 2204·2019-08-30 12:53
閱讀 1004·2019-08-29 14:00
閱讀 3367·2019-08-29 13:17
閱讀 2275·2019-08-28 18:00
閱讀 1289·2019-08-26 12:00