當jdbc程式向資料庫獲得乙個connection物件時,預設情況下這個connection物件會自動向資料庫提交在它上面傳送的sql語句。若想關閉這種預設提交方式,讓多條sql在乙個事務中執行,並且保證這些語句是在同一時間共同執行的時,我們就應該為這多條語句定義乙個事務。
其中,銀行轉賬這一事例,最能說明,使用事務的重要性了。
updatefrom account set
money
= money
-100
where name =
『a』;
update
from account set
money
= money
+100
where name = 『b』;
因為這時,兩個賬戶的增減變化是在一起執行的。現實生活中這種類似於同步通訊的例子還有很多,這裡,不再贅述。
當然,對於事務的編寫,也是要遵守一定的順序的:
首先,設定事務的提交方式為非自動提交:
conn.setautocommit(false);
接下來,.將需要新增事務的**放入try,catch塊中。
然後,.在try塊內新增事務的提交操作,表示操作無異常,提交事務。
conn.commit();
尤其不要忘記,.在catch塊內新增回滾事務,表示操作出現異常,撤銷事務:
conn.rollback();
最後,設定事務提交方式為自動提交:
conn.setautocommit(true);
這樣,通過簡單的幾步,我們就可以完成對事務處理的編寫了。
例:定義了乙個事務方法並在方法內實現了語句之間的一致性操作
connection con =null;statement st=null
;resultset rs=null
;preparedstatement ps=null
;publicvoid starttransaction()
catch
(sqlexception e)
catch
(sqlexception e1)
e.printstacktrace();
}finally
catch
(sqlexception e)
dbcmanager.release(rs, ps, con);
}}
啦啦啦
JDBC中事務的使用
當jdbc程式向資料庫獲得乙個connection物件時,預設情況下這個connection物件會自動向資料庫提交在它上面傳送的sql語句。若想關閉這種預設提交方式,讓多條sql在乙個事務中執行,並且保證這些語句是在同一時間共同執行的時,我們就應該為這多條語句定義乙個事務。其中,銀行轉賬這一事例,最...
JDBC中事務的使用
當jdbc程式向資料庫獲得乙個connection物件時,預設情況下這個connection物件會自動向資料庫提交在它上面傳送的sql語句。若想關閉這種預設提交方式,讓多條sql在乙個事務中執行,並且保證這些語句是在同一時間共同執行的時,我們就應該為這多條語句定義乙個事務。其中,銀行轉賬這一事例,最...
JDBC中事務的使用
當jdbc程式向資料庫獲得乙個connection物件時,預設情況下這個connection物件會自動向資料庫提交在它上面傳送的sql語句。若想關閉這種預設提交方式,讓多條sql在乙個事務中執行,並且保證這些語句是在同一時間共同執行的時,我們就應該為這多條語句定義乙個事務。其中,銀行轉賬這一事例,最...