事务

事务隔离级

  • 脏读:允许读取未提交的信息
    • 原因:Read uncommitted
    • 解决方案:Read committed(表级读锁)
  • 不可重复读:读取过程中单个数据发生了变化
    • 解决方案:Repeatable read(行级写锁)
  • 幻读:读取过程中数据条目发生了变化
    • 解决方法:Serializable(表级写锁)

事务管理

Spring事务核心对象

  • PlatformTransactionManager
    image
  • 此接口定义了事务的基本操作
    • 获取事务:
      TransactionStatus getTransaction(TransactionDefinition definition)
    • 提交事务:
      void commit(TransactionStatus status)
    • 回滚事务:
      void rollback(transactionStatus status)
  • TransactionDefinition
    • 此接口定义了事务的基本信息
      • 获取事务定义名称:String getName()
      • 获取事务的读写属性:boolean isReadOnly()
      • 获取事务隔离级别:int getIsOlationLevel()
      • 获取事务超时时间:int getTimeout()
      • 获取事务传播行为特征:int getPropagationBehavior()
  • TransactionStatus
    • 此接口定义了事务在执行过程中某个时间点上的状态信息及对应的状态操作
      • 获取事务是否处于新开期事务状态:boolean isNewTransaction()
      • 获取事务是否处于已完成状态:boolean isCompleted()
      • 获取事务是否处于回滚状态:boolean isRollbackOnly()
      • 刷新事务状态:void flush()
      • 获取事务是否具有回滚存储点:boolean hashSavepoint()
      • 设置事务处于回滚状态:void setRollbackOnly()

事务控制方式

posted @ 2022-06-14 16:10  生活的样子就该是那样  阅读(19)  评论(0编辑  收藏  举报