在数据库中,所谓事务是指一组逻辑操作单元即一组sql语句。当这个单元中的一部分操作失败,整个事务回滚,只有全部正确才完成提交。
事务的特性:
1.原子性
事务是数据库逻辑的工作单元,事务包括的所有操作,要么都做,要么都不做。
业务 逻辑:原子性是指事务包含的所有操作要么全部成功,要么全部回滚,因此事务的操作成功就必须要完全应用到数据库,
2.一致性
事务执行的结果是使数据库从一个一致性状态变成另一个一致性状态。一致性与原子性是密切相关的。
业务逻辑:那转账来说,假设用户A和用户B两者的钱加起来一共是5000,那么不管A还是B如何转账,转几次帐,事务结束后
两个用户的钱加起来应该还是5000,这就是事务的一致性.
2:;比如a,b账户相互转账之后,总金额不变;
3.隔离性
一个事务的执行不能被其他事务干扰。
A给B转账的过程中 ,c给B转账 是不可以的因为A和B的交易没结束
4.持久性
一个事务一旦提交,它对数据库中数据的改变应该是永久性的。在JDBC中,
事务默认是自动提交的,
每次执行一个 SQL 语句时,如果执行成功,
就会向数据库自动提交,而不能回滚
为了让多个 SQL 语句作为一个事务执行:
(1)执行语句前调用 Connection 对象的setAutoCommit(false);
以取消自动提交事务
(2)在所有的 SQL 语句都成功执行后,调用 commit(); 方法提交事务
(3)在出现异常时,调用 rollback(); 方法回滚事务。