事务
事务的四个特性:原子性、一致性、持久性、隔离性。
原子性:强调事务的不可分割,像原子一样。要么都执行,要么都不执行。
一致性:事务的发生前后保持一致,就好像你领钱前和领完后金额是一致的 。
持久性:一旦事务结束,数据就一直保存在数据库中。
隔离性:事务执行过程中,不受其他事务的干扰。
事务传播行为用来描述由某一个事务传播行为修饰的方法被嵌套进另一个方法的时事务如何传播。
事务的几个传播方式:nested当外部事务发生回滚,子事务也会发生过回滚,requires_new 则是当外围事务发生回滚,子事务也不会发生回滚,当子事务发生回滚的时候,如果外围事务可以感知到,也就是不在try-catch中的时候,外围事务是需要发生回滚,所有和外围事务是一个事务的子事务也发生回滚,当外围事务无法感知的时候,子事务发生回滚,不会影响到外围事务。
springboot中是通过使用@Transactional 进行的修饰。默认情况下是运行期异常才会发生回滚,但是我们可以在注解中进行修改默认规则。
如:@Transactional(rollback=Exception.class)....
mysql中进行事务处理:一般在mysql中事务都是自动提交的,因此我们需要通过以下的几条命令进行自动提交事务。
begin:开始一个事务、RollBack 事务回滚、Commit 事务提交