事务处理

本文包含:

  1. 事务的概念和 MySQL 事务支持
  2. JDBC 的事务支持
  3. Java 8增量的批量更新

1. 事务的概念和 MySQL 事务支持

事务是由一步或几步数据库操作序列组成的逻辑执行单元,该系列操作要么全部执行,要么全部放弃执行。
程序和事务是不同的概念,一般而言,一段程序中可能包含多个事务。
事务具备 4 个特性:原子性、一致性、隔离性和持续性
在这里插入图片描述在这里插入图片描述
数据库的事务由下列语句组成:
在这里插入图片描述
DDL 和 DCL 语句最多只能有一条,因为 DDL 和 DCL 语句都会导致事务立即提交。
在这里插入图片描述在这里插入图片描述
自动提交和开启事务恰好相反,如果开启自动提交就是关闭事务,关闭自动提交就是开启事务。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

2. JDBC 的事务支持

在这里插入图片描述在这里插入图片描述
Connection 提供了设置中间点的方法:setSavepoint(),Connection 提供了两个方法来设置中间点:
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

3. Java 8增量的批量更新

使用批量更新时,多条 SQL 语句将被作为一批操作同时收集,并同时提交。
在这里插入图片描述在这里插入图片描述
下面程序示范了如何执行批量更新:
在这里插入图片描述
为了让批量操作可以正确处理错误,必须把批量执行的操作视为单个事务,如果批量更新在执行过程中失败,则让事务回滚到批量操作开始之前的状态。为了达到这种效果,程序应该在开始批量操作之前先关闭自动提交,然后开始收集更新语句,当批量操作执行结束后,提交事务,并恢复之前的自动提交模式。在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值