1:事务的特征:
ACID
A atomic 原子性,一个事务是一个不可分割的单位
C constency 一致性 一个事务开始结束后,数据完整性约束没有被破坏
约束:Fk/pk/not null/unique/check
I isolation 隔离性 一个事物的执行,与其他事物的关系
D durable 持久性,数据应该持久保存
2:事务的边界 JDBC规范的61 页
auto commit :
JDBC默认是true
* 默认情况下事务的边界auto commit=true:
对于insert update delete statement执行结束的时候会提交事务
* auto commit=false
只能显示声明事务的提交,如果不显示声明,connection在关闭的时候会
检查,然后提交事务
* 设置为 auto commit=false
在一个事物用到多个statement的时候要显示声明auto commit=false】
3: 事务的隔离级别:
* 脏读
允许读取到别的事务修改但是未提交的数据
* 不可重复读
在一个事务中多次读取一条数据,读取后的结果不一致(数据被别的事务更改);
* 幻像读
在一个事务中多次读取后,读取了别的事务插入进来的数据
* transaction read uncommitted
允许读取到别的事务修改但是未提交的数据
* transaction read committed
只能读取到别的事务已经提交的数据,未提交的读取不到改变
* transaction repeatable read
在一个事务中多次读取一条数据,读取后的结果一致(数据被别的事务更改读取结果一样
)
* transaction serializable
在一个事务中多次读取后,读取不到别的事务插入进来的数据
4:savepoint: 给事务提供了更好的细粒度控制。
ACID
A atomic 原子性,一个事务是一个不可分割的单位
C constency 一致性 一个事务开始结束后,数据完整性约束没有被破坏
约束:Fk/pk/not null/unique/check
I isolation 隔离性 一个事物的执行,与其他事物的关系
D durable 持久性,数据应该持久保存
2:事务的边界 JDBC规范的61 页
auto commit :
JDBC默认是true
* 默认情况下事务的边界auto commit=true:
对于insert update delete statement执行结束的时候会提交事务
* auto commit=false
只能显示声明事务的提交,如果不显示声明,connection在关闭的时候会
检查,然后提交事务
* 设置为 auto commit=false
在一个事物用到多个statement的时候要显示声明auto commit=false】
3: 事务的隔离级别:
* 脏读
允许读取到别的事务修改但是未提交的数据
* 不可重复读
在一个事务中多次读取一条数据,读取后的结果不一致(数据被别的事务更改);
* 幻像读
在一个事务中多次读取后,读取了别的事务插入进来的数据
* transaction read uncommitted
允许读取到别的事务修改但是未提交的数据
* transaction read committed
只能读取到别的事务已经提交的数据,未提交的读取不到改变
* transaction repeatable read
在一个事务中多次读取一条数据,读取后的结果一致(数据被别的事务更改读取结果一样
)
* transaction serializable
在一个事务中多次读取后,读取不到别的事务插入进来的数据
4:savepoint: 给事务提供了更好的细粒度控制。