日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JDBC 之 事务

發布時間:2023/12/9 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的JDBC 之 事务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。