`

java事务

    博客分类:
  • DB
阅读更多
一、什么是Java 事务
通常的观念认为,事务仅与数据库相关。事务必须服从ISO/IEC所制定的ACID原则,即:原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)的缩写。
1)事务的原子性表示事务执行过程中的任何失败都将导致事务所做的任何修改失效;一个事务中可能是一条或多条sql,只要其中的一条sql执行失败,则整个事务都是失败的。

2)一致性表示当事务执行失败时,所有被该事务影响的数据都应该恢复到事务执行前的状态。

3)隔离性表示在事务执行过程中对数据的修改在事务提交之前对其他事务不可见(这跟数据库本身的隔离级别有关系请参阅数据库事务隔离级别)。
4)持久性表示已提交的数据在事务执行失败时,数据的状态都应该正确。


通俗的理解,事务是一组原子操作单元,从数据库角度说,就是一组SQL指令,要么全部执行成功,若因为某个原因其中一条指令执行有错误,则撤销先前执行过的所有指令。更简答的说就是:要么全部执行成功,要么撤销不执行。

既然事务的概念从数据库而来,那Java事务是什么?之间有什么联系?
实际上,一个Java应用系统,如果要操作数据库,则通过JDBC来实现的。增加、修改、删除都是通过相应方法间接来实现的,事务的控制也相应转移到Java程序代码中。因此,数据库操作的事务习惯上就称为Java事务。

二、事务的作用
事务是为解决数据安全操作提出的,事务控制实际上就是控制数据的安全访问。举一个简单例子:比如银行转帐业务,账户A要将自己账户上的100元转到B账户下面,逻辑上A账户余额首先要减去100元,然后B账户要增加100元。假如在中间网络出现了故障,A账户减去100元已经结束,B因为网络中断而操作失败,那么整个业务失败,像类似这样的情况必须做出控制,必须要求把A账户转帐业务撤销。这才能保证业务的正确性,否则谁来承担这样的损失呢;因此将A账户资金减少和B账户资金增加方到一个事务里面,要么全部执行成功,要么操作全部撤销,这样就保持了数据的安全性 。

三、Java事务的类型
Java事务的类型有三种:JDBC事务、JTA(Java Transaction API)事务、容器事务(ejb)。本文只讲述JDBC事务:
JDBC事务是用Connection对象控制的。JDBC Connection接口( java.sql.Connection)提供了两种事务模式:自动提交和手工提交(设计程序使用事务时定选择后者)java.sql.Connection提供了以下控制事务的方法:
public void setAutoCommit(boolean)
public boolean getAutoCommit()
public void commit()
public void rollback()
使用 JDBC 事务界定时,您可以将多个 SQL 语句结合到一个事务中。JDBC 事务的一个缺点是事务的范围局限于一个数据库连接。一个JDBC 事务不能跨越多个数据库。

虽然只讲述JDBC事务,但简单讲述一下这几种事务之间的差别,以便留下印象
1、JDBC事务控制的局限性在一个数据库连接内,但是其使用简单。
2、JTA事务的功能强大,事务可以跨越多个数据库或多个DAO,使用也比较复杂。
3、容器事务,主要指的是J2EE应用服务器提供的事务管理,局限于EJB应用使用。
--------------------------------------------------------------------------
  在JDBC中是通过Connection对象进行事务管理的,默认是自动提交事务,可以手工将自动提交关闭,通过commit方法进行提交,rollback方法进行回滚,如果不提交,则数据不会真正的插入到数据库中。

    Hibernate中是通过Transaction进行事务管理,处理方法与JDBC中类似。

    Spring中也有自己的事务管理机制,使用TransactionMananger进行管理,可以通过Spring的注入来完成此功能。
分享到:
评论

相关推荐

    Java事务的简单代码

    当我们谈论"Java事务"时,我们通常指的是在多条SQL语句执行过程中保持数据完整性的一种方法。以下是一个简化的Java事务处理代码示例,适用于初学者理解和学习。 首先,我们需要了解Java中的JDBC(Java Database ...

    java事务 - threadlocal

    Java事务和ThreadLocal是两种在Java编程中至关重要的概念,它们分别用于处理多线程环境下的数据一致性问题和提供线程局部变量。 首先,我们来深入理解Java事务。在数据库操作中,事务是一系列操作的集合,这些操作...

    java事务 - 传递Connection

    Java事务管理是数据库操作中的关键部分,用于确保数据的一致性和完整性。在Java中,我们主要通过Java Database Connectivity (JDBC) API来处理事务。"java事务 - 传递Connection"这个主题聚焦于如何通过共享同一`...

    java事务设计策略

    根据提供的文件信息,我们可以深入探讨“Java事务设计策略”这一主题。尽管提供的文件内容主要包含了出版信息而非具体的事务设计内容,但基于标题、描述及标签信息,我们可以推断出本书可能涉及的关键知识点,并据此...

    java事务处理总结

    ### Java事务处理总结 在Java开发中,事务处理是一项非常重要的技术,它能够确保数据的一致性和完整性。本文将从多个角度对Java中的事务处理进行深入解析,帮助开发者更好地理解和运用这一技术。 #### 一、事务的...

    java事务 - 使用动态代理

    Java事务管理是应用程序中至关重要的部分,特别是在处理数据库操作时,确保数据的一致性和完整性。在Java中,事务管理可以通过多种方式实现,其中一种高效且灵活的方法是利用动态代理。动态代理可以帮助我们实现事务...

    Java事务处理总结

    ### Java事务处理总结 #### 一、什么是Java事务 事务是指一组操作的集合,这些操作要么全部成功,要么全部失败,以确保数据的一致性和完整性。在Java开发中,事务处理主要关注的是如何管理和控制对数据库的操作,...

    java事务 - 模板设计模式

    总结来说,Java事务模板设计模式结合ThreadLocal,提供了一种高效、健壮的事务管理策略。它减少了代码的重复性,提高了代码的可读性和可维护性,同时通过ThreadLocal解决了并发环境下的事务隔离问题。理解并熟练应用...

    Java事务处理详细介绍

    ### Java事务处理详细介绍 #### 一、什么是Java事务 在软件开发领域,特别是涉及数据库操作的应用中,**事务处理**是非常关键的一个概念。通常人们认为事务处理与数据库操作紧密相关,其实事务的概念远不止于此。...

    Java事务处理总结[归类].pdf

    Java事务处理是编程中确保数据一致性和完整性的关键机制,特别是在涉及数据库操作的场景下。事务处理遵循ACID原则,即原子性、一致性、隔离性和持久性。原子性确保事务作为一个不可分割的操作单元,要么全部执行,...

    java事务处理详解

    Java事务处理详解 Java事务处理是指在Java应用程序中对事务的管理和控制。事务是指一系列的操作,Either all succeed or all fail。Java事务处理的目的是为了确保数据的一致性和完整性。 Spring是Java事务处理的...

    java事务管理和事务分类

    Java 事务管理和事务分类主要涉及如何确保在多步骤操作中数据的一致性和完整性。事务是数据库操作的基本单元,遵循ACID原则,即原子性、一致性、隔离性和持久性。在Java中,事务处理通常与数据库操作密切相关,尤其...

    Java事务设计策略

    Java事务设计策略 Mark Richards 编著 翟静 翻译 InfoQ软件开发丛书

    Java事务概述.ppt

    自己整理的java事务分享知识点,在公司技术分享会上与同事们探讨学习。与各位相互学习,共同进步,谢谢大家。

    java事务 - 使用注解

    在Java编程中,事务管理是确保数据库操作一致性的重要机制。当涉及到多个数据库操作时,事务可以确保这些操作要么全部成功,要么全部失败,避免数据不一致的情况。在Spring框架中,我们可以利用注解来简化事务的管理...

    JAVA事务配置总结

    在Java开发中,事务管理是确保数据库操作一致性的重要机制。本文将对三种不同的事务配置方式进行深入探讨:本地事务、全局事务以及结合动态数据源的事务管理。这些配置方式在处理多数据源和复杂业务场景时具有不同的...

    学习Java事务祝大家进步

    Java事务是Java编程中一个非常重要的概念,尤其是在开发企业级应用程序和数据库管理中。事务确保了数据的一致性和完整性,防止在并发操作中出现错误。本文将深入探讨Java事务的相关知识点,帮助大家理解和掌握这一...

    java事务的简单使用共5页.pdf.zip

    Java事务是数据库操作中的核心概念,它确保了数据的一致性和完整性。在Java应用程序中,尤其是在涉及多条数据库操作时,事务管理显得尤为重要。本文将深入探讨Java事务的基本概念、特性以及如何在实际开发中进行简单...

Global site tag (gtag.js) - Google Analytics