事务

回顾什么是事务?
一个不可分割的子操作形成一个整体,该整体要么全部执行成功,要么全部执行失败。例如:转帐

回顾为什么要用事务?
如果不用事务的话,为转帐为例,可能出现一个用户钱增加了,另一个用户钱不变

回顾编程中,事务可用于哪一层?
事务放在业务层

回顾jdbc编程中,如何使用事务?
connection.setAutoCommit(false);
pstmt.executeUpdate();
connection.commit();
connection.rollback();

回顾hibernate编程中,如何使用事务?
transaction.begin();
session.save(new User());
transaction.commit();
transaction.rollback();

回顾spring编程中,如何使用事务?
spring可以分为二种
>编程式事务,藕合
>声明式事务,解藕,提倡

Oracle的事务只针对DML操作,即select/insert/update/delete

mysql事务开始:
START TRANSACTION
DELETE FROM t_shop_user WHERE id = 29
ROLLBACK
COMMIT


Oracle的事务开始:第一条DML操作做为事务开始

回顾什么是回滚点?
在操作之间设置的一个标志位,用于将来回滚之用

回顾为什么要设置回滚点?savepoint a;rollback to savepoint a;
如果没有设置回滚点的话,Oracle必须回滚到事务开始的地方,其间做的一个正确的操作也将撤销

使用savepoint 回滚点,设置回滚点a
savepoint a;

使用rollback to savepoint,回滚到回滚点a处
rollback to savepoint a;

Oracle提交或回滚后,原来设置的回滚点还有效吗?
原回滚点无效了

Oracle之所以能回滚的原因是?
主要机制是实例池

 事务隔离中有提到隔离级别

当能力支撑不了野心时,就该静下心来学习!
原文地址:https://www.cnblogs.com/1234cjq/p/7202364.html