`

事务相关

 
阅读更多
数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作。 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠。一个逻辑工作单元要成为事务,必须满足所谓的ACID(原子性、一致性、隔离性和持久性)属性。
原子性(Atomicity):一个事务必须将它产生的所有更改作为一个单独的工作单元提交,或者回滚。对于其数据修改,要么全部执行,要么全部不执行。即所有的更改操作被当成一个整体处理。
一致性(Consistency):事务在完成时,必须使所有的数据都保持一致状态。在事务期间,每次对数据库实施的插入、更新或删除操作时,数据库的完整性约束都要得到保证——即使在事务还未提交时也必须如此。
独立性(Isolation):由并发事务所作的修改必须与任何其他并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。独立性是由一致性和并发性共同决定的。在独立性级别提高时,一致性将会会更好,但并发程度将降低。
持久性(Durability):事务完成之后,它对于系统的影响是永久性的。该修改即使出现致命的系统故障也将一直保持。




Java中的常用的事务模型:
本地事务模型(Local Transaction Model)
编程式事务模型(Programmatic Transaction Model)
声明式事务模型(Declarative Transaction Model)

本地事务模型:事实上不是编程框架本身来管理事务,事务是交给本地资源管理器(local resource manager)来管理。资源管理器是用于通信的、事实上的数据源(dara source)提供者。如,数据库相关,资源管理器是通过数据库驱动和数据库管理系统(DBMS)来实现的。经由本地事务模型,开发人员管理的是“连接(connection)”,而非“事务”。

编程式事务管理:利用了Java事务API及其底层事务服务实现的能量以提供事务支持,突破了“本地事务模型”的种种限制。通过编程式事务模型,开发人员的编码对象是“事务”,而非“连接”。

声明式事务模型:在声明式事务模型的环境下,软件框架或“容器”管理了事务的开始和结束(或者提交,或者回滚)。开发人员仅仅需要告诉软件框架,碰到应用异常时“去回滚事务”即可,对事务的配置都是通过EJB中的XML部署描述文件或Spring中Bean的定义文件来完成。
分享到:
评论

相关推荐

    GBase 8s事务相关概念

    以下是关于GBase 8s中事务相关概念的详细解释: 1. **事务**:事务是数据库系统中执行的基本工作单元,它包含了一组逻辑操作,这些操作要么全部成功完成(提交),要么全部不执行(回滚)。事务提供了一种机制,...

    简化数据库操作和简化事务相关操作的jar包

    内含mchange-commons-0.2,mysql-connector-java-5.1.13-bin,commons-dbutils-1.4,itcast-tools-1.4,c3p0-0.9.2-pre1这五个jar包,用于简化数据库操作和简化事务相关操作。

    MySQL RR事务相关面试题

    事务相关

    分布式事务相关资料及软件

    "分布式事务相关资料及软件"这个标题暗示了我们将会探讨分布式事务的基础理论,以及一种名为Seata的开源分布式事务解决方案。 分布式事务是为了在分布式系统环境下保证数据的一致性和完整性而设计的一种事务处理...

    事务处理API分布式事务处理

    本文的目的是要提供一个关于的Java事务处理API(JTA)的高级的概述,以及与分布式事务相关的内容。一个事务处理定义了一个工作逻辑单元,要么彻底成功要么不产生任何结果。 一个分布式事务处理只是一个在两个或更多...

    Spring事务相关类Uml图

    本文将深入探讨Spring事务管理的相关类及其UML图,帮助理解这些类之间的关系和作用。 首先,Spring提供了两种事务管理方式:编程式事务管理和声明式事务管理。编程式事务管理通过调用`PlatformTransactionManager`...

    实验 spring 声明事务

    实验 "Spring 声明事务" 是 Java 高级编程中的一个重要环节,旨在让学生掌握 Spring 框架中声明式事务管理的配置和使用。...这将有助于他们在未来开发中更好地处理事务相关的复杂问题,确保应用程序的数据一致性。

    spring学习事务源码

    声明式事务管理则依赖于AOP(面向切面编程)来自动处理事务的开始、提交或回滚,无需开发者编写事务相关的代码。 Spring事务管理的核心组件包括: 1. **TransactionDefinition**: 定义了事务的属性,如隔离级别、...

    Spring事务详细讲解

    再也无需要我们在与事务相关的方法中处理大量的 try…catch…finally 代码。 事务属性是使用 Spring 声明式事务时的一个非常重要的概念。事务属性通常由事务的传播行为、事务的隔离级别、事务的超时值和事务只读...

    JDBC事务管理的简单实现

    为了实现数据一致性,需要在代码中显示的调用Connection方法的事务相关API来完成工作。下面是关于JDBC事务管理的简单实现的知识点。 一、事务管理的必要性 在数据库编程中,事务管理是非常重要的一部分。它可以...

    行政事务相关管理流程.doc

    行政事务相关管理流程.doc

    COM+事务处理

    // 在这里执行事务相关的数据库操作 } catch { ContextUtil.SetAbort(); throw; } finally { ContextUtil.SetComplete(); } return "事务处理完成"; } } } ``` 在这个例子中,`WorkTran`方法包含了...

    spring 简单实例 事务回滚

    当带有`@Transactional`注解的方法被调用时,Spring的代理会在方法执行前后插入事务相关的代码。如果方法正常结束,它会提交事务;如果抛出异常,它会回滚事务。 总之,这个“spring简单实例 事务回滚”案例为我们...

    行政事务相关管理流程5.doc

    行政事务相关管理流程5.doc

    JAVA(Spring)事务管理.doc

    Spring提供了丰富的事务管理API来帮助开发者处理事务相关的操作。 首先,我们来看一下Spring事务管理的核心接口`PlatformTransactionManager`。这个接口是Spring事务管理的高层次抽象,它负责真正地管理事务,包括...

    关于SpringMyBatis纯注解事务不能提交的问题分析与解决

    ### 问题背景 在开发基于Spring框架的应用程序时,经常需要...此外,还需要注意事务管理器的正确配置,确保所有事务相关的组件都正确地引用了同一个数据源实例。通过上述方法,可以有效提升应用程序的可靠性和效率。

    Mycat事务补偿设计文档

    2. **事务的隔离**:在事务执行过程中,需要有效地隔离事务相关的数据,以免出现数据冲突等问题。这通常需要根据具体的业务场景对相关数据进行锁定处理。 3. **混合事务处理**:在Mycat中,主子表之间可以配置刚性...

    使用Spring的事务模板

    // 在这里执行事务相关的操作,如果出现异常,事务会被回滚 // ... } }); } ``` `TransactionTemplate`的使用可以让你在没有AOP的情况下享受到事务管理的便利,同时避免了手动管理事务的复杂性。它提供了一种...

    NET 2.0中的事务处理、回滚处理

    LTM适用于单个应用程序域内的事务,它能够快速启动并监控与事务相关的资源。如果事务涉及到跨进程的操作,LTM会自动升级到使用可升级的单阶段登记(PSPE)模型,这是一种提高性能的机制。在SQL Server 2005中,与之...

    day36 09-Hibernate中的事务:事务处理

    在Hibernate的配置文件中,可以设置事务相关的属性,比如默认的事务隔离级别、是否自动开始事务等。例如: ```xml <property name="hibernate.connection.isolation">2</property> <!-- 2对应READ_COMMITTED隔离...

Global site tag (gtag.js) - Google Analytics