1.事务(Transaction)
组成单个逻辑工作单元的一系列操作被称为事务。
2.数据库事务组成
0~多条DML语句
一条DDL(Data Define Language)语句
一条DCL(Data Control Language)语句
3.事务控制
通过将一组相关操作组合为一个要么全部成功,要么全部失败的逻辑工作单元,以简化错误恢复、提高应用程序的可靠性。
4.事务必须满足的ACID属性:
原子性(Atomicity)
一致性(Consistency)
隔离性(Isolation)
持久性(Durability)
5.事务的开始和结束
事务开始于第一条可执行语句
事务结束:
遇到commit或rollback语句
遇到DDL或DCL语句
用户会话结束
系统崩溃
6.事务的提交和回滚
显式的提交和回滚操作是为了更好地保证数据的一致性。
下述情况事务会被自动提交
执行一个DDL语句
执行一个DCL语句
正常结束会话
会话异常终止/系统崩溃时事务会被自动回滚。
7.Sql Plus的自动提交
Sql Plus中执行SQL语句时可以设置是否自动提交,缺省设置为非自动提交。
查看设置:
show autocommit;
autocommit OFF
autocommit IMMEDIATE
改变设置
set autocommit on;
set autocommit off;
8.提交/回滚数据状态
当前事务中数据状态的改变是可以恢复的。
当前事务中的DML操作结果只对当前用户(会话)可见,其它用户(会话)看不到当前事务中的数据状态的改变,直到当前事务结束。
当前事务中的DML语句所涉及到的行被锁定,其它用户(会话)不能对其进行修改操作。
9.事务提交后数据状态
数据的修改永久生效、不可再撤销。
数据以前的状态永久性丢失、无法恢复。
所有的用户(会话)都将看到操作后的结果。
记录锁被释放,其它用户可对这些进行修改操作。
事务中的保存点(savepoionts)被清除。
10.事务回滚后数据状态
数据的修改被撤销。
数据恢复到修改前的状态。
记录锁被释放。
11.保存点
通过保存点在当前的事务中创建标记,将来可回退到指定的标记处,实现事务的部分回滚。
例:
insert into dept values(55, ‘Adv’, ‘Beijing’);
insert into dept values(56, ‘Sec’, ‘Shanghai’);
savingpoint p1;
insert into dept valuw(57, ‘Acc’, ‘Tianjin’);
select * from dept;
rollback to p1;
select * from dept;
分享到:
相关推荐
JdbcTemplate是spring-jdbc提供的数据库核心操作类,那对JdbcTemplate进行事务控制呢?
事务控制事务控制事务控制事务控制
1.问题引入 2.事务基本概念、特性 3.事务并发引起问题,隔离级别 4.Springboot事务控制
一个关于ibatis事务控制的案例实现,java+ibaitis+sql实现。
spring事务控制jar包,请网上自寻下载
Spring4+SpringMVC+Mybaties 内含有事务控制
Spring Boot数据库事务控制.zip
spring+druid+AtomikosDataSource实现多数据源切换及分布式事务控制
JDBC使用MySQL处理大数据+事务控制管理.txt
执行存储过程时在项目代码中加事务控制 存储过程,事务,类
当前J2EE项目中,面临的一个共同问题就是如果控制事务的并发访问,虽然有些持久层框架已经为我们做了很多工作,但是理解原理,对于我们开发来说还是很有用处的。
Spring事务控制
简单的Spring+MyBastis事务控制代码,包括2个超简单的数据库表,服务代码(同时更新2个表的数据,如果后面的表的处理出错,则事务会回滚),只是简单演示了事务控制功能,其他的没有涉及。测试功能采用JUnit4.
JDBC事务控制--讲述如何控制JDBC事务
springMVC框架事务控制,保证业务操作的完整性 防止在一些意外(例如说突然断电)的情况下出现乱数据,防止数据库数据出现问题。 如:银行转帐。A账户减少的钱要加到B账户上,若A这边减了钱,B那边却还是一样的数,这...
spring通过aspectj来实现事务控制
声明式事务控制,spring2.5+hibernate3集成源码,附带有数据库脚本,可以直接导入到项目的工作空间。欢迎下载
基于student表,实现对表的增、删、改、删,并且支持事务控制,事务控制是基于自定义的异常拦截
MYSQL数据库SQL语句----TLC 事务控制语言总结思维导图
Mysql事务控制(XA分布式事务)和锁定语句