`
explore
  • 浏览: 80966 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

事务基本概念

    博客分类:
  • J2EE
阅读更多

 

转自:

 http://dev.firnow.com/course/7_databases/database_other/200855/113472.html

 http://longdechuanren.iteye.com/blog/646497

 

 

1. ACID

     原子性(Atomicity):保证事务中的所有操作全部执行或全部不执行。例如执行转账事务,要么转账成功,要么失败。成功,则金额从转出帐户转入到目的帐户,并且两个帐户金额将发生相应的变化;失败,则两个账户的金额都不变。不会出现转出帐户扣了钱,而目的帐户没有收到钱的情况

     一致性(Consistency):保证数据库始终保持数据的一致性——事务操作之前是一致的,事务操作之后也是一致的,不管事务成功与否。如上面的例子,转账之前和之后数据库都保持数据上的一致性,即:在事务提交前或后,所有用select查出来的数据都是一样的。

     隔离型(Isolation):多个事务并发执行的话,结果应该与多个事务串行执行效果是一样的。显然最简单的隔离就是将所有事务都串行执行:先来先执行,一个事务执行完了才允许执行下一个。但这样数据库的效率低下,如:两个不同的事务只是读取同一批数据,这样完全可以并发进行。为了控制并发执行的效果就有了不同的隔离级别。

      持久性(Durability):持久性表示事物操作完成之后,对数据库的影响是持久的,即使数据库因故障而受到破坏,数据库也应该能够恢复。通常的实现方式是采用日志

 

2. 事务的传播机制

   在我们用SSH开发项目的时候,我们一般都是将事务设置在Service层,当我们调Service层的一个方法的时候它能够保证我们的这个方法中执行的所有的对数据库的更新操作保持在一个事务中。在事务层里面调用的这些方法要么全部成功,要么全部失败。那么事务的传播特性也是从这里说起的。
   如果你的Service层的某个方法除了调用了Dao层的方法D之外,还调用了本类的其他的Service方法S,那么在调用S的时候,这个事务是怎么规定的呢,我必须保证我在我方法里调用的S与D处在同一个事务中,否则如何能保证事物的一致性。事务的传播特性就是解决这个问题的。“事务是会传播的”,在Spring中有针对传播特性的多种配置我们大多数情况下只用其中的一种:PROPGATION_REQUIRED:这个配置项的意思是说当我调用service层的方法的时候开启一个事务(具体调用那一层的方法开始创建事务,要看你的aop的配置),那么在调用这个service层里面的其他的方法的时候,如果当前方法产生了事务就用当前方法产生的事务,否则就创建一个新的事务。这个工作使由Spring来帮助我们完成的。
   以前没有Spring帮助我们完成事务的时候我们必须自己手动的控制事务,例如当我们项目中仅仅使用hibernate,而没有集成进spring的时候,我们在一个service层中调用其他的业务逻辑方法,为了保证事物必须也要把当前的hibernate session传递到下一个方法中,或者采用ThreadLocal的方法,将session传递给下一个方法,其实都是一个目的。现在这个工作由spring来帮助我们完成,就可以让我们更加的专注于我们的业务逻辑。而不用去关心事务的问题。

   默认情况下当发生RuntimeException的情况下,事务才会回滚,所以要注意一下 如果你在程序发生错误的情况下,有自己的异常处理机制定义自己的Exception,必须从RuntimeException类继承 这样事务才会回滚!

 

 

分享到:
评论

相关推荐

    分布式事务实战(二) -事务基本概念

    分布式事务实战(二) - 事务基本概念 事务是数据库操作的核心机制,它提供了一种可靠且一致的方式来处理数据库中的数据。事务被视为一个不可分割的工作单元,其中包含一系列的数据库操作,这些操作要么全部成功执行...

    事务处理:概念与技术

    作者使用事务作为基本概念,说明了在有限的资金和风险下如何构建高性能的高可用性应用。书中还详细阐述了各种可能发生的问题,以及解决这些问题的实际可用的技术。  本书列举了大量成功的商业和研究系统的实例,...

    微服务架构的分布式事务控制及解决方案视频教程

    1.事务基本概念讲解(本地、分布式) 2.分布式事务理论(CAP、BASE) 3.分布式事务解决方案之2PC(xa、seata) 4.分布式事务解决方案之TCC(hmily) 5.分布式事务解决方案之可靠消息最终一致性 6.分布式事务解决方案...

    分布式事务若依框架文档

    #### 一、分布式事务基本概念 在理解分布式事务之前,我们首先需要了解数据库事务的基本属性,即ACID特性。 - **原子性(Atomicity)**:事务中的所有操作要么全部成功,要么全部失败。如果其中任何一部分失败,则...

    net中事务循环net中事务循环

    ### 事务基本概念 事务(Transaction)是数据库操作的一个逻辑单元,它包含一系列的操作,这些操作要么全部成功,要么全部失败,以此来保证数据的一致性。事务通常具有ACID特性: - **原子性**(Atomicity):事务...

    分布式事务原理及解决方案.docx

    事务基本概念 事务是一种用于确保数据完整性和一致性的机制,通常具有以下四个主要特征: - **原子性(Atomicity)**:事务被视为一个不可分割的整体,其中的所有操作要么全部成功,要么全部失败。 - **一致性...

    C#操作事务

    一、事务基本概念 事务是数据库系统中最小的工作单元,它包含了多个数据库操作。一个事务必须满足ACID(原子性、一致性、隔离性和持久性)属性,以确保数据的完整性和一致性。 1. 原子性(Atomicity):事务中的...

    事务的概念

    事务的基本概念和在不同环境下如何使用事务。

    软考系分之数据库事务并发与事务加锁

    #### 一、数据库事务基本概念 在数据库领域,事务(Transaction)是由一系列操作组成的逻辑工作单元。事务具备四个关键特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)以及持久性...

    事务处理概念与技术

    事务是数据库管理中的一个基本操作单元,它包含一系列的操作,这些操作要么全部成功,要么全部失败。事务处理确保了数据的一致性和可靠性。事务具有四个主要特性:原子性(Atomicity)、一致性(Consistency)、隔离性...

    JDBC事务控制--讲述如何控制JDBC事务

    #### 一、事务基本概念 事务(Transaction)是指一系列操作,这些操作要么全部成功执行,要么全部回滚,确保数据的一致性和完整性。事务具备四个特性,即 ACID 特性: 1. **原子性**(Atomicity):整个事务中的...

    GBase 8s事务相关概念

    在数据库管理中,事务是确保数据一致性、完整性和可靠性的核心概念。以下是关于GBase 8s中事务相关概念的详细解释: 1. **事务**:事务是数据库系统中执行的基本工作单元,它包含了一组逻辑操作,这些操作要么全部...

    常用的分布式事务解决方案.docx

    ### 分布式事务基本概念与理论基础 #### 一、事务概述 事务是数据库操作的基本单位,一组操作被视为一个整体,要么全部成功,要么全部失败。事务具备四大特性:原子性(Atomicity)、一致性(Consistency)、隔离...

    Spring Boot数据库事务控制.pptx

    1.问题引入 2.事务基本概念、特性 3.事务并发引起问题,隔离级别 4.Springboot事务控制

    C#中调用Transaction

    事务基本概念 事务是数据库操作的一组逻辑单元,它包含一系列相互关联的操作,这些操作要么全部执行,要么全部不执行,确保数据的一致性和完整性。事务通常涉及增删改查(CRUD)数据库操作。四大事务特性,即ACID...

    10141207-何伟_教学设计新部编版方案.pdf

    - **事务基本概念**:事务是数据库操作的基本单位,由一系列数据库操作组成,这些操作要么全部执行,要么全部不执行。 - **事务特征**: - **原子性**:事务的所有操作视为单个操作,不可分割,如果事务中任何...

Global site tag (gtag.js) - Google Analytics