`
浩哥啊
  • 浏览: 1681 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

事务的操作

阅读更多
      事务是为了确保数据库的完整性。当所有语句都顺利执行后,事务可以提交,否则,如果其中某个语句遇到错误,那么事务将被回滚,就好像没有执行过任何命令一样。

      如果将更新语句组合成一个事务,那么事务要么成功执行所有的操作并被提交,要么在中间某个位置发生失败,在这种出现失败的情况下,可以执行回滚操作,
将数据库自动撤销回上次提交事务以来的所有更新操作产生的影响。

      默认情况下,数据库处于自动提交模式。每个SQL语句一旦被执行便会被提交给数据库,一旦命令提交,就无法对他进行回滚操作。
    
     一、 事务的回滚
      Connection conn = DriverManager.getCommection(url,username,password);

      可以使用 conn.setAutoCommit(false);来关闭自动提交。
      然后调用Statement stat=conn.createStatement();来创建语句对象。
      用stat.executeUpdate(SQL语句);执行sql命令,执行完之后,调用conn.commit()方法,出现错误则调用conn.rollback()进行回滚。
  

       二、 保存点的使用

      为了更好的控制事务的回滚操作,我们可以设置保存点(Save point),创建一个保存点意味着稍后只需返回到这个点,而不是整个事务的开头

      Connection conn = DriverManager.getCommection(url,username,password);

      Statement stat=conn.createStatement();
      stat.executeUpdate(SQL语句);
      Savepoint svpt= conn.setSavepoint();
      stat.executeUpdate(SQL语句);
      if(...)
      {
         conn.rollback(avpt);
      }
      else
      {
      conn.commit();
      }

     这里,我们使用了匿名保存点,也可以给他添加名字如

     Savepoint svpt= conn.setSavepoint("savepoint");
     当使用一个保存点完成所有操作后,必须释放:
    conn.releaseSavepoint(svpt);
分享到:
评论

相关推荐

    C#中增加SQLite事务操作支持与使用方法

    C# 中增加 SQLite 事务操作支持与使用方法 在 C# 中使用 SQLite 数据库时,事务操作是非常重要的一部分。事务操作可以确保数据库的数据一致性和完整性,避免数据不一致的情况。下面将详细介绍 C# 中增加 SQLite ...

    不同的事务操作代码

    ### 不同的事务操作代码 在Java开发中,事务管理是一项重要的技术,它确保了数据的一致性和完整性。本文将详细介绍三种不同的事务操作代码:JTA(Java Transaction API)全局事务、JDBC局部事务以及Hibernate事务,...

    spring事务操作试验

    本文将深入探讨在"spring事务操作试验"中涉及的关键知识点,并结合提供的资源进行详细阐述。 首先,Spring事务管理的核心概念是ACID(原子性、一致性、隔离性和持久性),这是所有事务系统的基础。在Spring中,事务...

    含有事务操作的sqlhelper类C#

    在这个主题中,我们将深入探讨如何在C#中使用SQLHelper类进行事务操作,以及事务的重要性和应用。 事务是数据库操作的基本单位,它确保一组操作要么全部成功,要么全部失败,从而维护数据的一致性。在C#中,我们...

    C#自己实现AOP的事务操作

    下面我们将深入探讨如何在C#中利用AOP来实现事务操作,并结合Attribute的使用来增强代码的灵活性和可重用性。 首先,我们需要创建一个表示事务特性的自定义Attribute,例如`TransactionAttribute`。这个特性可以...

    JavaEE spring事务操作环境和基本功能搭建

    本文将详细讲解如何搭建Spring事务操作环境以及实现基本功能。 首先,理解事务(Transaction)的重要性。在数据库操作中,事务是确保数据一致性和完整性的关键概念。一个事务是一系列数据库操作的集合,这些操作...

    Spring--事务操作.pdf

    在Spring框架中,事务操作是确保数据一致性和完整性的关键组件。事务是一组逻辑上的操作集合,它们要么全部成功,要么全部失败。这个特性对于银行转账这样的典型场景尤为重要,在事务管理中,我们通常提到的ACID原则...

    Android数据存储SQLite的事务操作

    本文将深入探讨Android数据存储中SQLite的事务操作,包括其基本原理、具体实现方法以及注意事项。 ### 基本原理 在数据库系统中,事务是指作为一个工作单元执行的一系列操作。一个事务中的所有操作必须作为一个...

    Spring5 框架 ---- 事务操作 ---- 代码

    Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 ---- 事务操作 ---- 代码 Spring5 框架 --...

    Spring事务传播原理及数据库事务操作原理.rar

    总的来说,Spring事务传播原理和数据库事务操作原理是Java开发人员必须掌握的核心知识。理解这些原理,能够帮助我们在开发过程中更好地处理数据一致性问题,保证系统的稳定性和可靠性。通过对Spring事务机制的熟练...

    02-01-10-Spring事务传播原理及数据库事务操作原理1

    在本课程中,我们将深入探讨Spring事务传播原理和数据库事务操作的基本概念,这对于有Spring开发经验的人员来说,是进一步深化事务控制理解的关键。我们还将触及分布式事务的初步知识,帮助开发者更好地掌握基于...

    mySQL事务处理

    } 通常都是上述的写法, 在mysql 不支持事务的时候 , 中间的 setAutoCommit 的事务操作是不是都不生效. 现在innoDB支持 事务了, 上述的 java 代码是否能实现 以下的 事务隔离的 操作, 在修改的时候处于锁定状态 ...

    电子功用-带有事务功能以及报告事务操作的日志记录电路的处理器

    在电子工程领域,处理器设计是核心部分,而“电子功用-带有事务功能以及报告事务操作的日志记录电路的处理器”这一主题聚焦于一种特殊的处理器设计,它具备事务处理能力和日志记录功能。这类处理器通常被用于高可靠...

    day18-事务与连接池 3.jdbc中事务操作介绍

    本篇将深入探讨“事务”和“连接池”这两个概念,以及在JDBC中如何进行事务操作。 首先,让我们理解什么是事务。事务是数据库操作的基本单位,它确保了数据的一致性和完整性。在事务中,一系列数据库操作要么全部...

    Spring事务操作示例(四种方式)

    Spring事务操作示例(四种方式),包含完整代码和数据库文件(基于MySQL,在项目sql文件夹中),可运行,学习Spring事务详见博客:http://blog.csdn.net/daijin888888/article/details/51822257

    分布式事务操作之Spring+JTA+mybatis源码

    分布式事务的目标是提供与单体事务一样的ACID(原子性、一致性、隔离性和持久性)特性,确保事务操作的正确性。 2. **Spring 框架**:Spring 是一个广泛使用的 Java 应用开发框架,它提供了强大的依赖注入、AOP...

    Android数据存储SQLite - 事务操作

    Android数据存储SQLite - 事务操作

    Android数据库中事务操作方法之银行转账示例

    Android数据库中事务操作方法之银行转账示例 Android数据库中事务操作方法是一种非常重要的技术, especialmente 在银行转账等涉及到多个表操作的场景下。事务操作可以保证数据库的一致性和 atomicity, 防止部分...

    mysql事务处理用法与实例详解

    #### 三、MySQL中的事务操作 在MySQL中,可以通过以下命令来管理和控制事务: - **开始事务**:使用`START TRANSACTION`或`BEGIN`来开始一个新的事务。 - **提交事务**:使用`COMMIT`命令来提交当前事务,这将使...

    05Spring之事务操作.md

    05Spring之事务操作.md

Global site tag (gtag.js) - Google Analytics