spring事务


事务

概念

保证一组数据库的操作,要么同时成功,要么同时失败

四大特性

  1. 隔离性:多个事务之间要相互隔离,不能互相干扰
  2. 原子性:指事务是一个不可分割的整体,类似一个不可分割的原子
  3. 一致性:保障事务前后这组数据的状态是一致的,要么成功,要么失败
  4. 持久性:指事务一旦被提交,这组操作修改的数据就真的发生变化了。即使接下来数据库故障也不应该对其有影响

事务的传播性

  1. REQUIRED(required): 外层方法有事务,内层方法就加入。外层没有,内层就新建
  2. REQUIRES_NEW(required_new): 外层方法有事务,内层方法新建。外层没有,内层也新建
  3. SUPPORTS(supports):外层方法有事务,内层方法就加入,外层没有,内层就也没有
  4. NOT_SUPPORTED(not_supported): 外层方法有事务,内层方法没有。外层没有,内层也没有
  5. MANDATORY(mandatory): 外层方法有事务,内层方法加入。外层没有。内层就报错。
  6. NEVER(never):外层方法有事务,内层方法就报错。外层没有,内层就也没有。

事务的隔离级别

  1. DEFAULT(default): 使用数据库默认隔离级别
  2. READ_UNCOMMITTED(read_uncommitted):读取且没有提交
  3. READ_COMMITTED(read_committed): 读取且提交
  4. REPEATABLE_READ(repeatable_read): 重复读
  5. SERIALIZABLE(serializable): 可以避免脏读、不可重复读和幻读,但是并发性极低,一般很少使用。

文章作者: 小猩
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小猩 !
  目录