JDBC对事务的操作
上一节
下一节
请同学们先浏览PPT,这是一个任务点哈!完成后有惊喜哟!

事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。比如,在人员管理系统中删除一个人员时,既需要删除人员的基本资料,也要删除和该人员相关的信息,如信箱,文章等等,这样,这些数据库操作语句就构成一个事务。
事务是必须满足4个条件(ACID):
原子性(atomicity)
一致性(consistency)
隔离性(isolation)
持久性(durability)
JDBC事务的执行流程如图所示。

JDBC中的事务处理有两种方式:通过Connection接口中的setAutoCommit()方法设置
手动提交事务:调用Connection接口的commit()方法
自动提交事务:每当执行一条SQL时就会提交事务
为了解决这些由于多个用户请求相同数据而引起的问题,事务之间必须用锁相互隔开。在JDBC编程接口中获得事务级别如表所示。
| 序号 | 名称 | 说明 |
| 1 | TRANSACTION_NONE | 不支持事务 |
| 2 | TRANSACTION_READ_UNCOMMITTED | 事务在提交前其变化对于其他事务来说是可见的。这样脏读、不可重复的读和虚读都是允许的 |
| 3 | TRANSACTION_READ_COMMITTED | 读取未提交的数据是不允许的。这个级别仍然允许不可重复的读和虚读产生 |
| 4 | TRANSACTION_REPEATABLE_READ | 事务保证能够再次读取相同的数据而不会失败,但虚读仍然会出现 |
| 5 | TRANSACTION_SERIALIZABLE | 最高的事务级别,它防止脏读、不可重复的读和虚读 |

