1.为什么需要事务?
在一些业务中没有事务是一件非常可怕的事情, 比如在转账业务中如果没有事务可能造成资金转出去但是对方未收到的情况. 数据的一致性无法得到保证
2.事务是什么?
事务具有ACID属性, 保证了一端代码要么不执行, 执行的话就要值行完毕, 不会出现执行一半去执行其他程序的情况,正如转账过程中我方向对方转账,只有在对方账户收到资金时这个事物才算结束.
>ACID属性
[1] A (atomicity) 原子性: 指事务是一个不可分割是工作单位, 要么不执行要么就执行完毕
[2] C (consistency) 一致性: 事务使数据从一种状态转换成另一种状态, 转换前后数据整体上不变
[3] I (isolation) 隔离性: 一个事务执行是不受其他事务影响
[4] D (durability) 持久性: 事务一旦体检对数据库的改变是永久性的
3.如何使用事务?
[1] 将事务由自动设置为手动 connection.setAutoCommit(false) 即将自动模式设置为false
原因: MySQL innodb 数据库会自动设置和提交事务, 但是仅限于单个语句, 因此如果想将多个不同语句整合成事务, 就需要手动设置事务
[2] 但事务结束时提交事务 connection.commit()
只有提交事务之后事务中的代码才会被执行, 类似于惰性操作
[3] 事务回滚 connection.rollback() 改代码存在于catch中, 确保异常产生时能使事务回到初始状态
jdbc中的事务入门
最新推荐文章于 2024-09-10 10:40:14 发布