本文包含:
- 事务的概念和 MySQL 事务支持
- JDBC 的事务支持
- Java 8增量的批量更新
1. 事务的概念和 MySQL 事务支持
事务是由一步或几步数据库操作序列组成的逻辑执行单元,该系列操作要么全部执行,要么全部放弃执行。
程序和事务是不同的概念,一般而言,一段程序中可能包含多个事务。
事务具备 4 个特性:原子性、一致性、隔离性和持续性
数据库的事务由下列语句组成:
DDL 和 DCL 语句最多只能有一条,因为 DDL 和 DCL 语句都会导致事务立即提交。
自动提交和开启事务恰好相反,如果开启自动提交就是关闭事务,关闭自动提交就是开启事务。
2. JDBC 的事务支持
Connection 提供了设置中间点的方法:setSavepoint(),Connection 提供了两个方法来设置中间点:
3. Java 8增量的批量更新
使用批量更新时,多条 SQL 语句将被作为一批操作同时收集,并同时提交。
下面程序示范了如何执行批量更新:
为了让批量操作可以正确处理错误,必须把批量执行的操作视为单个事务,如果批量更新在执行过程中失败,则让事务回滚到批量操作开始之前的状态。为了达到这种效果,程序应该在开始批量操作之前先关闭自动提交,然后开始收集更新语句,当批量操作执行结束后,提交事务,并恢复之前的自动提交模式。