轉賬時必須雙方同時成功,要麼同時失敗,就是把雙方組成單元放到事務中
1)顯示的開啟乙個事務:start transaction
2)事務提交:commit代表從開啟事務到事務提交 中間的所有的sql都認為有效 真正的更新資料庫
3)事務的回滾:rollback 代表事務的回滾 從開啟事務到事務回滾 中間的所有的 sql操作都認為無效資料庫沒有被更新
預設是自動事務:
執行sql語句:executeupdate() ---- 每執行一次executeupdate方法 代表 事務自動提交
通過jdbc的api手動事務:
開啟事務:conn.setautocomnmit(false);
提交事務:conn.commit();
回滾事務:conn.rollback();
注意:控制事務的connnection必須是同乙個
執行sql的connection與開啟事務的connnection必須是同乙個才能對事務進行控制
1)原子性(atomicity)原子性是指事務是乙個不可分割的工作單位,事務中的操作 要麼都發生,要麼都不發生。
2)一致性(consistency)乙個事務中,事務前後資料的完整性必須保持一致。
3)隔離性(isolation)多個事務,事務的隔離性是指多個使用者併發訪問資料庫時, 乙個使用者的 事務不能被其它使用者的事務所干擾,多個併發事務之間資料要相互隔離。
4)永續性(durability)永續性是指乙個事務一旦被提交,它對資料庫中資料的改變 就是永久性的,接下來即使資料庫發生故障也不應該對其有任何影響。
轉賬功能
事務完成轉賬功能。
事務的特性acid 原子性 atomicity 指事務是乙個不可分割的工作單位,事務中的操作。要麼都發生,要麼都不發生。一致性 consistency 乙個事務中,事務前後資料的完整性必須保持一致。隔離性 isolation 是指多個使用者併發訪問資料庫時,乙個使用者的 事務不能被其它使用者的事務所...
事務例子 模擬轉賬
需求 需求 有乙個轉賬功能 service transfer to,from,money reducebalance to,money 模擬錯誤i 5 0 increasebalance from,money dao reducebalance userid,money increasebalanc...
mysql模擬事務轉賬
測試事務 建立表create table account id int 3 notnull auto increment name varchar 30 not null money decimal 9 2 not null primary key id engine innodb default ...