复习一下事务 ~~~~

本文详细介绍了MySQL中的事务概念,包括事务的开启、提交和回滚等基本操作,以及事务的四大特性:原子性、一致性、隔离性和持久性。此外,还探讨了不同的事务隔离级别及其对数据读取的影响。

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

Mysql中的事务:

     a.mysql引擎是支持事务的

     b.mysql默认自动提交事务。每条语句都处在单独的事务中。

     c.手动控制事务

              开启事务:start  transaction|begin

              提交事务:commit

              回滚事务:rollback 

JDBC如何控制事务的呢? 看下图

 

事务的特性有哪些呢?

     1、原子性:指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。

     2、一致性:事务必须使数据库从一个一致性状态变换到另一个一致性状态。例如转账前和转账后的总金额不变。

     3、隔离性:事务的隔离性指的就是多个用户并发访问数据库的时候,数据库为每一个用户开启的事务,不能被其他事务的操作数据所干扰,多个并发事物之间要相互隔离。

     4、持久性:指一个事务一旦被提交了,他对数据库中的改变就是永久性的,接下来即使数据发生故障也不应该对其有任何影响。

    

事务的隔离级别:   4

    脏读:指一个事务读取了另一个事务未提交的数据。

    不可重复读:在一个事务内读取表中的谋一行数据,多次读取结果不同。一个事务读取到了另一个事务提交后的数据。 update

    虚读  (幻读):在一个事务内读取到了别的事务插入的数据,导入前后读取不一致  insert

    数据库设置事务的隔离级别防止以上情况的发生:

              1、READ  UNCOMMITTED:   脏读   不可重复读   虚读 都有可能发生

              2、READ  COMMITTED     :   避免脏读。  不可重复读,虚读可能发生。(oracle默认)

              4、REPEATABLE   READ:避免脏读、不可重复读。虚读可能发生。(mysql默认)

              8、SERIALIZABLE:避免脏读、不可重复读、虚读

  级别越高,性能越低,数据越安全。

   

       mysql:查看当前事务的隔离级别:  SELECT  @@TX_ISOLATION;

                    更改当前事务的隔离级别:SET TRANSACTION  ISOLATION LEVEL 四个级别之一。

                    设置隔离级别必须在提交事务之前。

 

JDBC控制事务的隔离级别:

    Connection接口

   

     设置隔离级别,必须在事务开启之前。

     Connection.setTransactionIsolation(int levlel);

           

      

 

 

    

转载于:https://www.cnblogs.com/Leroyo/p/8283162.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值