jdbc mysql 事务_Mysql:事务(mysql事务、jdbc事务)

一、MYSQL事务

1、事务

(1)概念

事务是一个用户定义的数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。事务可以是一条sql语句,一组sql语句或者整个程序

在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务

InnoDB 存储引擎提供事务的隔离级别有READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ 和 SERIALIZABLE

(2)特性(ACDI)

原子性(Atomicity):一个事务中的操作要么全做,要么全不做

一致性(Consistence):事务执行的结果必须使数据库从一个一致性状态转换为另一个一致性状态

持久性(Durability):一个事务一旦提交对数据库的操作就是永久性的。(已经存储到了磁盘)

隔离性(Isolation):并发执行的事务之间互不干扰

(3)好处

事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。例如:转账操作中,转账方金额减少与收款方金额增加就是一个事务,因为要保证总金额的不变。

2、MYSQL的事务

(1)如果用户不对数据库进行操作,默认情况下事务直接开始并提交(将对数据库的更新写到磁盘)

例如:在login数据表中执行以下插入操作后:

INSERT login VALUES('mysql','事务')

9b57b7b324169f8c612b113193f2be34.png

执行插入语句后,数据库中已经存在数据

(2)手动操作事务的开始和提交

先开启事务:

START TRANSACTION

执行插入语句:

INSERT login VALUES('星期一','Monday')

此时执行查询语句,依旧能够查询到插入的数据:

2e9a1e1f7e9cfb70b4a76ecfe7e3adac.png

但是,此时并未对事务进行提交操作,数据并未进入磁盘。

如果执行回滚语句,插入的数据将会消失(从事务开启到回滚之间的操作均被撤销):

ROLLBACK

但是,如果执行的是提交语句,数据将会被写入磁盘。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值