JDBC 之 事務

1.概念:事務指邏輯上的一組操作,組成這組操作的各個單元,要么全部成功,要么全部不成功。

2.數據庫開啟事務的命令dtl:

Start transaction開啟事務

Rollback回滾事務(撤銷)

Commit提交事務

3.JDBC控制事務語句:

Connection.setAutoCommit(false);   ------start transaction

Connecttion.rollback();         ------roolback

Connection.commit();         ??------commit

4.事務的特性(ACID)

(1)原子性(Atomicity)

原子性是指事務是一個不可分割的工作單位,事務中的操作要么都發生,要么都不發生。

(2)一致性(Consistency)

事務必須使數據庫從一個一致性狀態變換到另外一個一致性狀態

(3)隔離性(Isolation)

事務的隔離性是多個用戶并發訪問數據庫時,數據庫為每一個用戶開啟的事務,不能被其他事務的操作數據所干擾,即多個并發事務之間要相互隔離。

(4)持久性(Durability)

持久性是指一個事務一旦被提交,它對數據庫中數據的改變就是永久性的,接下來即使數據庫發生故障也不應該對其有任何影響

5.事務的隔離級別

多個線程開啟各自事務操作數據庫中數據時,數據庫系統要負責隔離操作,以保證各個線程在獲取數據時的準確性。

如果不考慮隔離性,可能會引發如下問題:

(1)臟讀:指一個事務讀取了另外一個事務未提交的數據。

(2)不可重復讀:針對一條記錄的,同一條記錄前后不一樣

(3)虛讀:幻讀,同一張表前后不一樣記錄數

6.數據庫共定義了四種隔離級別:

(1)Serializable:可避免臟讀、不可重復讀、虛讀情況的發生。(串行化)

(2)Repeatable read:可避免臟讀、不可重復讀情況的發生。

(3)Read committed:可避免臟讀情況發生。

(4)Read uncommitted:最低級別,以上情況均無法保證。(讀未提交)

set ??transaction isolation level設置事務隔離級別

select @@tx_isolation查詢當前事務隔離級別

7.注意:

(1)先設置隔離級別,再開啟事務。

Conn.setTransactionIsolation(Connection.*);

Conn.setAutoCommit(false);

(2)Connection中的setTransactionIsolation(int level)用于設置隔離級別

Level:Connection中的常量

8.案例:在JDBC代碼中使如下轉帳操作在同一事務中執行。

?



轉載于:https://www.cnblogs.com/bigerf/p/6265840.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284915.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284915.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284915.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[轉]后端程序員必備:書寫高質量SQL的30條建議

以下文章來源于撿田螺的小男孩 ,作者撿田螺的小男孩 轉載:《后端程序員必備:書寫高質量SQL的30條建議》 前言 本文將結合實例demo,闡述30條有關于優化SQL的建議,多數是實際開發中總結出來的,希望對大家有…

GIS熱詞:AR、VR、MR辨析

AR、VR、MR技術讓我們見識到了科技神奇的同時,也讓真實可感的現實世界和無法觸摸的虛擬世界的聯系更加緊密。 1. AR AR,全稱Augmented Reality,即增強現實技術。這項技術是利用電腦技術將虛擬的信息疊加到真實世界,通過手機、平板…

云原生數據庫是未來數據庫的天下

一、傳統數據庫的發展階段和痛點 1)、傳統數據庫的發展階段 ?人工管理階段 20世紀50十年代中期以前,計算機只是用來計算的,那么數據管理就只能純人工. ?文件系統管理階段 20世紀50年代后期到60年代中期,這時硬件方面有了磁盤、磁…

用.NET做DDNS動態域名解析和SSL證書申請

本文主要介紹 IPv6 配置 DDNS 解析和 SSL 證書申請工具的開發歷程和其中的相關知識。工具使用.NET開發,已開源,目前該工具的域名解析只支持阿里云。文中提及或使用的 .NET 開源項目:SangServerTool(DDNS,SSL證書申請工具&#xff…

匯編學習(一)

看的是王爽老師的《匯編語言》第三版基礎知識 一.匯編語言的誕生上古時期在匯編語言還未出現的時候,那時的程序員還只能用二進制也就是所謂的機器語言寫代碼,將0和1編成的程序代碼打在紙帶或卡片上,再將紙帶卡片輸入計算機,進行運…

Java 網絡編程1

talnet工具與Socket類 如今單機的程序已經不太能適合用戶的需要,網絡編程變得比以往更加重要。首先需要認識一下talnet工具,可以使用該工具來連接服務器在終端中輸入,可以進入本地的80端口 talnet 127.0.0.1 80 需要我們輸入ip地址和端口號,使…

【GIS風暴】GeoJSON數據格式案例全解

在了解GeoJSON數據之前,先來通過一個網站和一個簡單的代碼案例,看一下GeoJSON的神奇魅力吧! 網站:http://geojson.io 打開上述網站,在左側的代碼區域粘入中國區域GeoJSON代碼,如下所示: 中國地圖: 地名:

mysqldump參數大全

參數 參數說明 --all-databases , -A 導出全部數據庫。 mysqldump -uroot -p --all-databases --all-tablespaces , -Y 導出全部表空間。 mysqldump -uroot -p --all-databases --all-tablespaces --no-tablespaces , -y 不導出任何表空間信息。 mysqldump -uroot -p --a…

[轉]2020年5月程序員工資統計,平均14542元

平均工資 2020年5月全國招收程序員312761人。2020年5月全國程序員平均工資14542元,工資中位數12500 元,其中95%的人的工資介于5250元到35000元。 一線城市工資 2020年5月北京招收軟件工程師24478人。2019年5月北京軟件工程師平均工資19273元&#xff0…

云原生IDE:iVX免費的首個通用無代碼開發平臺

一、iVX簡單介紹 1、iVX是什么東東? iVX 是一個 “零代碼” 的可視化編程語言,擁有方便的 在線集成開發環境 ,不需要下載開發環境,打開瀏覽器即可隨時隨地的進行項目編輯;iVX 擁有 “一站式” 的云資源,通過這一套一…

.NET GC工作流程

前言在上文[如何獲取GC的STW時間]一文中,我們聊到了如何通過監聽GC發出的診斷事件來計算STW時間。里面只簡單的介紹了幾種GC事件和它的流程。群里就有小伙伴在問,那么GC事件是什么時候產生的?分別是代表什么含義?那么在本文就通過…

libco協程庫源碼解讀

2019獨角獸企業重金招聘Python工程師標準>>> 協程,又被稱為用戶級線程,是在應用層被調度,可以減少因為調用系統調用而阻塞的線程切換的時間.目前有很多協程的實現,由于微信內部大量使用了其直研的的libco協程庫,所以我選擇了騰訊開源的libco協程庫進行研…

【ArcGIS風暴】如何將矢量數據(點、線、面)折點坐標轉為GeoJSON格式?

本文以案例的形式,講述在ArcGIS和QGIS專業軟件中,將矢量數據轉為GeoJSON的方法。 擴展閱讀:【GIS風暴】GeoJSON數據格式案例全解 文章目錄 一、ArcGIS將矢量數據轉為GeoJSON二、QGIS將矢量數據轉為GeoJSON一、ArcGIS將矢量數據轉為GeoJSON ArcGIS中提供的【要素轉JSON】工具…

TypeScript 3.9 正式發布!平均編譯時長從 26 秒縮短至 10 秒

作者 | 微軟官方博客 譯者 | 核子可樂 策劃 | 小智 稿源 | 前端之巔 今天,微軟在其官方博客宣布:TypeScript 3.9 版本已經正式發布,詳情見下文。 有些朋友可能對 TypeScript 還不太熟悉,這是一種以 JavaScript 為基礎開發的語…

(二)Harbor WEB的使用

接上一篇《安裝Harbor》,安裝好之后,接下來我們就進行Harbor web界面的操作吧! 轉載請標明出處:http://www.cnblogs.com/huangjc/p/6270405.html 瀏覽器登陸Harbor(默認用戶密碼:admin/Harbor12345&#x…

iVX低代碼平臺系列制作簡單的登錄界面

一、前言 iVX是啥,不理解的小伙伴可以猛戳這里 ----------------------點我 二、iVX平臺和現有編程語言的對比 三、iVX平臺和現有編程語言的對比 1、快速學習(周期短) iVX邏輯上相對是比較簡單的 所以初學者的話只需要從邏輯和具體功…

【CASS精品教程】CASS9.1等高線的繪制完整案例教程

在地形圖中,等高線是表示地貌起伏的一種最重要的手段。在CASS成圖時,可自動生成精度高的等高線,本文講解CASS9.1生成等高線的完整操作流程。 文章目錄 1. 展高程點2. 建立數字地面模型3. 修改數字地面模型4. 繪制等高線5. 等高線的修飾6. 繪制三維模型擴展閱讀: ArcGIS實驗…

Process.Start 為什么會引發“系統找不到指定的文件”異常

前言偶然發現,如果想用如下代碼在 .NET 6 中打開指定 URL:Process.Start("https://baidu.com");會引發異常:而同樣的代碼在 .NET Framework 中是可以正常執行的。難道,.NET 6 下的實現邏輯不一樣?深入探究通…

JVM 類型的生命周期學習

Java虛擬機通過裝載、連接和初始化一個JAVA類型,使該類型可以被正在運行的JAVA程序所使用,其中,裝載就是把二進制形式的JAVA類型讀入JAVA虛擬機中;而連接就是把這種讀入虛擬機的二進制形式的類型數據合并到虛擬機的運行時狀態中去…

js對象數組中的某屬性值 拼接成字符串

var arr[{id: "600", pId: null, name: "圖形的變化"},{id: "630", pId: "600", name: "投影與視圖"},{id: "631", pId: "630", name: "投影"},{id: "632", pId: "630",…