在數據庫中,所謂事務是指一組邏輯操做單元,使數據從一種狀態變換到另外一種狀態。java
1. 原子性(Atomicity)
原子性是指事務是一個不可分割的工做單位,事務中的操做要麼都發生,要麼都不發生。 sql
2. 一致性(Consistency)
事務必須使數據庫從一個一致性狀態變換到另一個一致性狀態。數據庫
3. 隔離性(Isolation)
事務的隔離性是指一個事務的執行不能被其餘事務干擾,即一個事務內部的操做及使用的數據對併發的其餘事務是隔離的,併發執行的各個事務之間不能互相干擾。併發
4. 持久性(Durability)
持久性是指一個事務一旦被提交,它對數據庫中數據的改變就是永久性的,接下來的其餘操做和數據庫故障不該該對其有任何影響。函數
事務處理:保證全部事務都做爲一個工做單元來執行,即便出現了故障,都不能改變這種執行方式。當在一個事務中執行多個操做時,要麼全部的事務都被提交(commit),要麼整個事務回滾(rollback)到最初狀態.學習
當一個鏈接對象被建立時,默認狀況下是自動提交事務:每次執行一個 SQL 語句時,若是執行成功,就會向數據庫自動提交,而不能回滾。spa
爲了讓多個 SQL 語句做爲一個事務執行:.net
關於事務:code
@Test public void test16() { Connection conn = null; try { conn = getConnection2(); //開始事務: 取消默認提交 conn.setAutoCommit(false); //... //提交事務 conn.commit(); } catch(Exception e) { //.. //回滾事務 try { conn.rollback(); } catch(Exception e1) { e1.printStackTrace(); } } finally { //... } }
對於同時運行的多個事務, 當這些事務訪問數據庫中相同的數據時, 若是沒有采起必要的隔離機制, 就會致使各類併發問題:對象
數據庫事務的隔離性: 數據庫系統必須具備隔離併發運行各個事務的能力, 使它們不會相互影響, 避免各類併發問題.。
一個事務與其餘事務隔離的程度稱爲隔離級別. 數據庫規定了多種事務隔離級別, 不一樣隔離級別對應不一樣的干擾程度, 隔離級別越高, 數據一致性就越好, 但併發性越弱。
Mysql 支持 4 中事務隔離級別。Mysql 默認的事務隔離級別爲: REPEATABLE READ
在程序中經過如下語句設置隔離級別:
connection.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
JDBC學習筆記:
1. 獲取數據庫鏈接 http://my.oschina.net/daowuming/blog/704243
2. 經過Statement執行更新、查詢操做 http://my.oschina.net/daowuming/blog/704384
3. 使用PrepareStatement http://my.oschina.net/daowuming/blog/704432
4. 使用ResultSetMetaData 對象處理結果集元數據 http://my.oschina.net/daowuming/blog/704487
5. 使用DatabaseMetaData獲取數據庫信息 http://my.oschina.net/daowuming/blog/704553
6. BLOB http://my.oschina.net/daowuming/blog/704593
7. 處理事務與隔離級別 ----當前----
8. 批量處理 http://my.oschina.net/daowuming/blog/704641
9. 數據庫鏈接池 http://my.oschina.net/daowuming/blog/704700
10. 調用函數與存儲過程 http://my.oschina.net/daowuming/blog/704813