JDBC與事務管理

2021-09-28 12:57:41 字數 541 閱讀 2022

有這樣一種情況

a給b500塊,分為2步,a-500,b+500;

但是如果a的錢少了後出現異常,此時b還沒有改變,程式就結束了,訪問資料庫,發現a的錢少了,b的錢卻沒有增加,這樣肯定不行,所以我們加入事務管理,配合前兩次jdbc的筆記來學習

jdbc_1

jdbc_2

獲取連線

connection conn=jdbcutils.getconnection();
開啟事務

conn.setautocommit(false);
執行操作

定義sql

執行sql

操作結束後

conn.commit();
catch裡

if(conn!=null)
釋放資源

jdbcutils.close(rs,stmt,conn);

JDBC事務管理

問題 jdbc中,事務是自動提交的 因此 如果在事務的處理過程中,某條sql語句執行失敗,但此時事務已經自動提交,資料也已經被更改 解決辦法 設定jdbc的事務為手動提交 sql語句都執行成功後再統一提交,只要有失敗的就回滾 jdbc的事務管理 轉賬業務 示例 張三給李四轉賬1000元.注意 jdb...

JDBC事務管理

1 用事務的方法第一行,開啟事務。threadlocal儲存開啟事務後的connection.然後將threadlocal,放到context中 快取中 在各個dao裡面,直接從context中獲取connection.不知道可不可行?是個大大的 xx 2 用乙個count來記錄事務的層數?每巢狀一...

JDBC事務管理

事務是包含多個操作的業務,如果這個業務被事務管理,則這多個操作要麼全部被執行,要麼全不執行。具體原理詳見我的sql系列文章 事務 執行sql之前需要開啟事務,建議獲取連線後就將事務開啟。當所有sql完成無錯後,立即提交事務,防止意外導致回滾。在有錯誤丟擲異常的時候回滾事務。注意 1 由於可能面對各種...