您现在的位置是:首页 >

spring事务的应用场景 Spring 事务管理

火烧 2021-10-31 07:29:22 1096
S ri g 事务管理   数据库事务是由一系列的动作组成的 这些动作被当作单独的一个工作单位 这些动作要么被全部完整执行 要么全部不被执行 事务管理是关系数据中一个重要的部分   企业级应用使用事务

Spring 事务管理  

  数据库事务是由一系列的动作组成的 这些动作被当作单独的一个工作单位 这些动作要么被全部完整执行 要么全部不被执行 事务管理是关系数据中一个重要的部分

  企业级应用使用事务来保证数据的完整性和一致性 可以使用以下四个属性来描述事务

   原子性

  一个事务应该被当作一个单独的操作单位被执行 也就是说这一连串的操作被执行成功或者不成功

   一致性

  这个代表数据库参照完整性的一致性 表中存在唯一主键

   隔离性

  在同一个时刻可能会有多个事务的进程操作同一个数据集 每一个事务应该同其他的事务隔离 防止数据被篡改

   持久性

  一旦事务被执行成功 事务的结果需要被持久化 并且不能因为系统错误导致数据丢失

  一个真正的关系型数据库管理系统会为每一个会话保证上面四个特性 可以通过以下SQL实现

  开始一个会话通过使用 Begin Transaction 命令

  通过批量执行多个 delete update insert 操作

  如果所有的操作被执行 则执行mit操作 否则执行rollback操作

  Spring 框架在事务管理的API之上提供了一个抽象层 Spring的事务支持的目的在于通过添加事务的能力到POJO来提供一个可选的EJB事务

  Spring 提供编程式事务和声明式两种事务管理 EJB需要一个应用服务器 但是Spring事务管理能够被实现而不需要应用服务器

  本地事务 和 分布式事务

  本地事务特定于单个事务型资源 例如JDBC连接 而分布式事务能够在分布式系统中跨多个事务性资源

  编程式事务 和 声明式事务

  编程式事务管理 通过编程的方式来管理事务 这种提供了极度的灵活性 但是很难去维护

  声明式事务管理 你需要从业务代码中分离事务管理 你只能通过annotations 或者 基于XML的配置来管理事务

  事务隔离级别

  MITTED: 脏读能够被阻止 不可重复读和幻读会发生

  UNMITTED: 脏读 不可重复读 和幻读会发生

  REPEATABLE_READ 脏读和不可重复读能被阻止 幻读会发生

spring事务的应用场景 Spring 事务管理
lishixinzhi/Article/program/Java/ky/201311/27873  
永远跟党走
  • 如果你觉得本站很棒,可以通过扫码支付打赏哦!

    • 微信收款码
    • 支付宝收款码