TPL:事务控制语句

start transaction:开启一次事务
rollback:回滚
commit:提交事务

JDBC中与事务有关的方法:
Connection.setAutoCommit(boolean b)
Connection.rollback()
Connection.rollback(Savepoint sp)
Connection.commit();


*****四、事务的特性(隔离级别)
A:原子性。说明事务是一个不可分割的单位。
C:一致性.事务必须使数据库从一个一致性状态变换到另外一个一致性状态.(比如转账)
*I:隔离性。一个事务不能被其他事务打扰。
D:持久性。事务一旦提交,就应该被永久保存起来。

如果不考虑事务的隔离级别,会出现以下“不正确”的情况:
脏读:指一个事务读到了另一个事务中未提交的数据。
不可重复读:针对一条记录的,同一条记录前后不一样
虚读(幻读):针对一张表,前后读到的记录条数不一样。

MySQL中控制事务隔离级别的语句:
select @@tx_isolation; //查看当前的事务隔离级别
set transaction isolation level 你的级别(四种之一);//设置隔离级别

 


隔离级别的分类:
READ UNCOMMITTED(未授权读):脏读、不可重复读、虚读都有可能发生。
READ COMMITTED(授权读):能避免脏读,不可重复读、虚读都有可能发生。
REPEATABLE READ(可重复读):能避免脏读、不可重复度,虚读都有可能发生。
SERIALIZABLE(序列化):能避免脏读、不可重复度、虚读。

 

oracle隔离级别 只有READ COMMITTED和 SERIALIZABLE

因为当有人对数据库的数据进行任何写操作(DML操作)时,Oracle数据库系统首先将原始的数据复制到回滚段中,之后才做相应的操作,在事务处理结束之前其他的用户可以读这些数据,但是读到的都是回滚段上的数据。

1 create table bank
2 {
3   id int primary key,
4   name varchar(10),
5   money int
6 }
View Code

相关文章:

  • 2021-05-24
  • 2021-06-09
  • 2021-07-03
  • 2021-11-14
  • 2021-06-02
猜你喜欢
  • 2021-06-24
  • 2021-05-06
  • 2022-02-20
  • 2022-12-23
  • 2021-11-19
  • 2021-09-02
  • 2021-06-10
相关资源
相似解决方案