在数据库中事务是工作的逻辑单元,一个事务是由一个或多个完成一组的相关行为的SQL语句组成,通过事务机制确保这一组SQL语句所作的操作要么完全成功执行,完成整个工作单元操作,要么一点也不执行。
主要作用:确保数据库的完整性。
commit 提交 rollback回滚
例如:
银行转账(业务) 张三 转账1000给李四: 执行多少条SQL, 最少两条SQL
1) update 张三的余额 -1000
2) update 李四的余额, + 1000
--使用PL/SQL 模拟转账 begin --张三余额 -60000 update account set balance = balance - 60000 where name =‘zs‘; -- 李四 + 60000 update account set balance = balance + 60000 where name =‘ls‘; commit; dbms_output.put_line(‘转账成功‘); exception when others then rollback; dbms_output.put_line(‘转账失败‘); end;
事务的开始: 从执行的第一条SQL语句开始
事务的结束: 执行commit(提交, 把数据确定写入表中),或者执行rollback(回滚, 这个事务所做的所有的sql 都撤销)
确保多条SQL语句在同一个事务中, 数据库把这个些SQL写在同一个PL/SQL,
java 程序那边: ****事务加载业务层****
行锁: 给表中的某一行数据加锁, 对修改数据(update, delete)有效, 不影响查询数据
*** commit: 没有异常,写commit(表示全部成功)
*** 出现异常, 写rollback(全部失败), 把刚刚这个事务所有的sql语句全部撤销
原文:https://www.cnblogs.com/64Byte/p/12746518.html