前提:如果有多個操作,則必須保證所有的操作都同時使用乙個連線,則無法保證事務
①:開啟事務,取消connection的預設提交功能
connection.setautocommit(false);
②:具體操作步驟
③:操作成功則提交事務,丟擲異常則回滾事務(在catch塊中)
connection.commit(); / connection.rollback();
原子性:事務是乙個不可分割的工作單位,事務中的操作要麼都傳送,要麼都不發生
一致性:事務必須使資料庫從乙個一致性狀態變換到另外乙個一致性狀態
隔離性:事務的隔離性是指乙個事務的執行不能被其他事務干擾,即乙個事務內部的操作及使用的資料對併發的其他事務是隔離的,併發執行的各個事務直接不能互相干擾
永續性:事務一旦被提交,它對資料庫中資料的改變就是永久性的,接下來的其他操作和資料庫故障不應該對其有任何影響
public
class
transactiontest
catch
(exception e)
catch
(sqlexception e1)
}finally
}//更新方法
public
void
update
(connection connection,string sql,object .
..args)
preparedstatement.
executeupdate()
;}catch
(exception e)
finally
}}
程式發生異常後,資料庫並未發生改變,成功執行回滾功能
MySQL和JDBC處理事務
在預設情況下,mysql每執行一條sql語句,都是乙個單獨的事務。如果需要在乙個事務中包含多條sql語句,那麼需要開啟事務和結束事務。開啟事務 start transaction 結束事務 commit或rollback 在執行sql語句之前,先執行start transaction,這就開啟了乙個...
Spring處理事務
不同的訪問資料庫方式有不同的事務處理機制 物件 方法。而spring提供了一種處理事務的統一模型,能使用統一步驟 方式完成多種不同資料庫訪問計數的事務處理。spring處理事務的模型 步驟都是固定的。事務內部提交,回滾事務,使用的都是事務管理器物件,代替我們完成commit,rollback。事務管...
JDBC之批處理 事務 儲存過程
當需要向資料庫傳送一批sql語句執行時,應避免向資料庫一條條的傳送執行,而應採用jdbc的批處理機制,以提公升執行效率。實現批處理有兩種方式,第一種方式 statement.addbatch sql list 執行批處理sql語句 executebatch 方法 執行批處理命令 clearbatch...