一、数据库事务
在一个数据库操作(业务操作)中,包含多个DML动作(增/删/改),那么这多个DML动作是一个整体,在这一个业务操作中,不允许DML动作部分成功、部分失败的情况失败;要么全部成功、要么全部失败。
一、概念
数据库事务是用户定义的一个操作序列,事务认为,这些操作序列是一个不可分割的工作单位。
当一个操作序列中,多个操作进行的时候,某个操作执行失败。为了保持数据的完整性,需要使用事务回滚
1、四个特点
1-1、原子性:
表示事务执行过程中,用户定义的操作序列要么全部执行成功,要么全部执行失败
1-2、一致性:
表示事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态,称为事务回滚
1-3、隔离性:
表示在事务执行过程中对数据的修改,在事务提交之前对其他事务不可见
当有并发事务时,事务与食物之间不能相互干扰,就算是多个事务并发执行最终结果也和串行执行一致
1-4、持久性:
表示事务完成之后,对系统的影响是永久性的,如果已提交的数据在事务执行失败时,数据的状态都应该正确
二、实现方式
常用于对数据库数据的增/删/改(也就是有数据改动时)
1、保证一个业务的所有更新操作中,所使用的连接对象为同一个连接对象
2、将连接对象的提交方式设置为手动提交
con.setAutoCommit(false);
连接对象的提交方式设置为手动提交后,需要通过commit()方法,提交事务,更新数据库