事務的好處就是保證多表操縱的一致性。事務具有原子性,乙個事務內的操作要麼全部執行成功,要麼全部執行失敗,預設情況下,jdbc對資料庫的操作是自動提交的。我們通過conn.setautocommit(false);可以設定為自動提交,如果其中有一步操作失敗,可以使用rollback進行回滾。
下面的例子先執行插入,後執行刪除,如果中間有異常,可以使用rollback進行回滾
//建立連線
public static connection createcon()
catch (classnotfoundexception e) //classloader,載入對應驅動
try catch (sqlexception e)
return conn;
}
connection conn=dao.createcon();
try catch (sqlexception e) ;
//製造異常
string ss="aa";
integer.parseint(ss);
//刪除操作
string sql="delete from skus where skucode='00005' ";
try catch (sqlexception e) ;
conn.commit();//手動提交
} catch (sqlexception e) catch (sqlexception e1)
}
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 由於可能面對各種...