欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Spring事務(wù)隔離級別簡介及實(shí)例解析-創(chuàng)新互聯(lián)

本文研究的主要是Spring事務(wù)隔離級別(solation level)介紹及例子,具體如下。

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供上高網(wǎng)站建設(shè)、上高做網(wǎng)站、上高網(wǎng)站設(shè)計(jì)、上高網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)與制作、上高企業(yè)網(wǎng)站模板建站服務(wù),十年上高做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。

當(dāng)兩個事務(wù)對同一個數(shù)據(jù)庫的記錄進(jìn)行操作時(shí),那么,他們之間的影響是怎么樣的呢?這就出現(xiàn)了事務(wù)隔離級別的概念。數(shù)據(jù)庫的隔離性與并發(fā)控制有很大關(guān)系。數(shù)據(jù)庫的隔離級別是數(shù)據(jù)庫的事務(wù)特性ACID的一部分。ACID,即原子性(atomicity)、一致性(consistency)、隔離性(isolation)和持久性(durability)。Spring的事務(wù)隔離級別有四個:READ_UNCOMMITTED、READ_COMMITTED、REPEATABLE_READSERIALIZABLE。還有一個,是數(shù)據(jù)庫默認(rèn)的隔離級別DEFAULT,MySQL默認(rèn)是REPEATABLE_READ


下面來具體看看。

READ_UNCOMMITTED

顧名思義,READ_UNCOMMITTED意思是,一個事務(wù)可以讀取到另一個事務(wù)未提交的事務(wù)記錄。換句話說,a transaction can read the data that is still uncommitted by other transactions。這是Spring事務(wù)最弱的隔離級別。見下面的圖,事務(wù)A開啟,寫入一條記錄,這時(shí)候,事務(wù)B讀入數(shù)據(jù),讀到了這條記錄,但是,之后事務(wù)A回滾。因此,事務(wù)B讀到的數(shù)據(jù)不是有效的(the database is in an invalid state)。這種情況稱為臟讀(dirty read)。除了臟讀的問題,READ_UNCOMMITTED還可能出現(xiàn)non-repeatable read(不可重復(fù)讀)和phantom read(幻讀)的問題。

READ_COMMITTED

READ_COMMITTED隔離級別表明,一個事務(wù)只能讀取到已經(jīng)提交的記錄,不能讀取到未提交的記錄。換句話說,a transaction can only read the committed data, and it can't read the uncommitted data.因此,dirty read的情況不再發(fā)生,但可能會出現(xiàn)其他問題。見下圖。

在事務(wù)A兩次讀取的過程之間,事務(wù)B修改了那條記錄并進(jìn)行提交。因此,事務(wù)A前后兩次讀取的記錄不一致。這個問題稱為non-repeatable read(不可重復(fù)讀)。(兩次讀取的記錄不一致,重復(fù)讀取就會發(fā)現(xiàn)問題。)

除了non-repeatable read的問題,READ_COMMITTED還可能發(fā)生phantom read的問題。

REPEATABLE_READ

REPEATABLE_READ意思是,一個事務(wù)可以多次從數(shù)據(jù)庫讀取某條記錄,而且多次讀取的那條記錄都是一致的,相同的。這個隔離級別可以避免dirty read和non-repeatable read的問題,但可能發(fā)生phantom read的問題。如下圖。

事務(wù)A兩次從數(shù)據(jù)庫讀取一系列記錄,期間,事務(wù)B插入了某條記錄并提交。事務(wù)A第二次讀取時(shí),會讀取到事務(wù)B剛剛插入的那條記錄。在事務(wù)期間,事務(wù)A兩次讀取的一系列記錄不一致,這個問題稱為phantom read。

SERIALIZABLE

SERIALIZABLE是Spring最強(qiáng)的隔離級別。事務(wù)執(zhí)行時(shí),會在所有級別上加鎖,比如read和write時(shí)都會加鎖,仿佛事務(wù)是以串行的方式進(jìn)行的,而不是一起發(fā)生的。這會防止dirty read、non-repeatable read和phantom read的出現(xiàn),但是,會帶來性能的下降。

DEFAULT

MySQL默認(rèn)是REPEATABLE_READ。

例子

下面,我們看一個例子。在數(shù)據(jù)庫mysql里開啟一個事務(wù),不提交。然后,另一個事務(wù)讀取記錄。


剛開始,數(shù)據(jù)庫里的記錄,如圖

接下來,在數(shù)據(jù)庫mysql中開啟事務(wù)A,并插入一條記錄。

在service的業(yè)務(wù)類的事務(wù)屬性配置為READ_UNCOMMITTED。

@Transactional(isolation=Isolation.READ_UNCOMMITTED)
public class AccountService {
	private AccountDAO accountDAO;
	public AccountDAO getAccountDAO() {
		return accountDAO;
	}
	public void setAccountDAO(AccountDAO accountDAO) {
		this.accountDAO = accountDAO;
	}
	public void transfer(String from, String to, double money) {
		accountDAO.outMoney(from, money);
		accountDAO.inMoney(to, money);
	}
	public void readAllUser() {
		List<Account> accounts = accountDAO.getAllUser();
		for (Account account : accounts) {
			System.out.println(account);
		}
	}
}

網(wǎng)站名稱:Spring事務(wù)隔離級別簡介及實(shí)例解析-創(chuàng)新互聯(lián)
文章路徑:http://aaarwkj.com/article30/deocso.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動網(wǎng)站建設(shè)、企業(yè)建站、定制網(wǎng)站、網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
91久久国产综合久久91| 99热成人精品热久久| 久久夜色精品国产高清不卡| 夫妻性生活视频在线免费看| 亚洲淫婷婷久久一区二区| 亚洲国产传媒在线观看| 黄色大片免费在线观看| 日本一区二区三区高清在线| 中文字幕亚洲精品熟女少妇| 国产综合一区二区三区视频| 久久成人av一区二区三区| 99热在线播放精品观看| 亚洲黄色录像一区二区人妻黑人 | 国产精品天天影视久久| 日韩免费中文视频不卡| 又黄又爽又刺激的性视频| 日韩三级黄片在线观看| 最新国产毛片久热精品视频| 国产欧美日韩亚洲综合在线| 国产伦国产一区二区三区在线观看| 午夜射精视频在线观看| 一区二区三区福利视频在线观看| 亚洲欧美经典精品专区| 夫妻性生活一级片视频| 日本的一级片一区二区| 91免费福利激情视频| 少妇的诱惑免费在线看| 日韩中文字幕综合不卡| 精品亚洲午夜久久久久| 国产在线视频不卡福利片| 日本精品女优一区二区三区四区 | 四虎海外永久免费地址| 亚洲av成人在线观看| 日韩av在线播放亚洲天堂| 99热这里只有精品网址| 亚洲最大av免费在线看| 夫妻性生活在线视频一级片| 国产午夜在线观看免费视频| 亚洲国产欧美日韩激情在线| 国产网爆热门精品一区二区| 日韩欧美一级性生活片|