資料庫事務

2021-10-24 20:50:45 字數 1866 閱讀 4289

何為資料庫事務?

通俗來講,資料庫事務就是把一系列操作看成乙個整體,這個整體要麼執行成功,要麼因為種種原因,徹底執行失敗,也就是這個整體中的任何乙個操作都沒有執行。(要麼全部成功,要麼全部失敗)。

應用場景

經典例子:

甲方給乙方轉賬1000元,甲的賬戶先減去1000元,乙的賬戶再增加1000元。但是如果因為某種原因,使甲賬戶減去1000後,乙的賬戶增加1000元這個操作執行失敗,這個時候就不能讓甲的餘額減去1000,因為甲乙的賬戶餘額是乙個整體,一榮俱榮,一損俱損。這時候就要讓對甲的操作回滾(rollback)。

jdbc事務處理

資料一旦提交就不能回滾。

資料何時提交:

1.資料庫每次連線關閉時自動提交。

2.資料庫連線物件建立成功時預設自動提交:一條sql語句執行完之後會預設自動提交。

要允許資料庫回滾,就必須滿足:

1.乙個事務下的多個操作要在乙個資料庫連線之下完成

2.設定資料庫連線物件禁止自動提交

conn.

setautocommit

(fasle)

;

3.在乙個事務的所有操作完成後再手動commit

4.當事務其中的乙個操作失敗後,立馬rollback()

**如下:

public

void

testjdbctransaction()

catch

(exception e)

catch

(sqlexception e1)

}finally

catch

(sqlexception e)

//7.關閉連線

jdbcutils.

closeresource

(conn, null, null);}

}

其中的update方法為

//使用事務以後的通用的增刪改操作(version 2.0)

public

void

update

(connection conn ,string sql, object.

.. args)

// 3.執行sql語句

ps.execute()

;}catch

(exception e)

finally

}

需要注意,update方法中的connection用的是外界傳遞進來的引數,這也就保證了幾個操作共用了乙個連線物件。

事務的acid屬性

a :atomiticy(原子性) 原子在曾經被認作是世界上最小不可分割的物質。因此這裡表示的意思就是事務是最小的處理單元,不可以再被分割,內部的一切操作應該被視為乙個整體。

c :consistentcy(一致性) 事務必須從乙個一致性狀態變為另乙個一致性狀態。如果乙個事務作為原子從乙個一致的資料庫開始執行,則在事務執行結束時,資料庫和原來的資料庫是一致的。一致的,但並不是相同的,比如轉賬這個過程中,甲賬戶少了1000元錢,乙賬戶就要多1000元錢,這個過程中賬戶餘額總和是一致的。

i :isolation(隔離性) 乙個事務的執行不能被其他事務干擾,即乙個事務內部的操作及使用的資料對併發的其他事務是隔離的,併發執行的各個事務之間不能互相干擾。也就是後面會提到的資料庫的併發問題。

d :durability(永續性) 永續性是指,乙個事務一旦提交,對資料庫的影響是永續性的,不可改變的。

資料庫事務

事件是訪問並可能更新各種資料項的乙個程式執行單元。事件由事務開始與事務結束之間執行的全體操作組成。為了保證資料完整性,資料庫系統需要維護事務的以下性質 原子性 atomicity 事務中的操作要麼全部成功,要麼全部失敗。一致性 consistency 事務執行前後要保持資料庫的一致性。隔離性 iso...

資料庫 事務

資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為乙個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程式更加可靠。乙個邏輯工作單元要成...

資料庫事務

這段時間面試,由於基礎不是特別好,遇到一些要筆試的公司。就會表示出來 今天有人問我,資料庫事務 是什麼。我只感覺十分熟悉。但是又說不出所以然。回來找了一下,現在整理記錄 1 定義 資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務...