数据库事务

本文详细介绍了数据库事务的四大特性:原子性、一致性、隔离性和持久性,并深入探讨了不同事务隔离级别对脏读、不可重复读及幻象读等问题的影响。此外,还讲解了如何通过设置autocommit来控制事务的提交方式,以及savepoint为事务提供的细粒度控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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: 给事务提供了更好的细粒度控制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值