JDBC事務管理

2021-09-27 07:59:42 字數 765 閱讀 3326

問題:

jdbc中,事務是自動提交的 因此 如果在事務的處理過程中,某條sql語句執行失敗,但此時事務已經自動提交,資料也已經被更改

解決辦法:

設定jdbc的事務為手動提交

sql語句都執行成功後再統一提交,只要有失敗的就回滾

/**

* jdbc的事務管理:

* 轉賬業務

* 示例:

* 張三給李四轉賬1000元.

* * 注意:

* jdbc中的事務是自動提交的.

* 問題:

* 如果在業務的處理過程中,某條sql語句執行失敗,但是資料已經被更改了.

* 解決:

* 設定jdbc的事務為手動提交.

* sql語句都執行成功後再統一提交,只要有失敗的就回滾.

* 使用:

* conn.setautocommit(false)//設定為手動提交

* 使用try catch進行sql命令執行的異常處理

* try中是使用conn.commit() 提交資料

* catch中使用conn.rollback()回滾資料

* @author mypc

* */

public class testtran catch (exception e)

//關閉資源

stmt.close();

conn.close();

}}

JDBC事務管理

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

JDBC事務管理

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

JDBC與事務管理

有這樣一種情況 a給b500塊,分為2步,a 500,b 500 但是如果a的錢少了後出現異常,此時b還沒有改變,程式就結束了,訪問資料庫,發現a的錢少了,b的錢卻沒有增加,這樣肯定不行,所以我們加入事務管理,配合前兩次jdbc的筆記來學習 jdbc 1 jdbc 2 獲取連線 connection...