`
yangzg216
  • 浏览: 71884 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

JDBC对事务的使用(包括自动提交,回滚等知识)

    博客分类:
  • java
阅读更多
   首先得清楚什么时候使用事务。
   当你需要一次执行多条SQL语句时,可以使用事务。通俗一点说,就是,如果这几条SQL语句全部执行成功,则才对数据库进行一次更新,如果有一条SQL语句执行失败,则这几条SQL语句全部不进行执行,这个时候需要用到事务。
   其次才是事务的具体使用。
   1.获取对数据库的连接(代码这里省略了吧,网上太多了,对各种数据库的连接的都有)
   2.设置事务不自动提交(默认情况是自动提交的)
     conn.setAutoCommit(false);   其中conn是第一步获取的随数据库的连接对象。
   3.把想要一次性提交的几个sql语句用事务进行提交
     Statement stmt = null;
     stmt = conn.createStatement();
     stmt.executeUpdate(sql1);
     stmt.executeUpdate(Sql2);
     .
     .
     .
     conn.commit();   //使用commit提交事务
  4.捕获异常,进行数据的回滚(回滚一般写在catch块中)
    catch(Exception e)
    {
        ...
        try
        {
           conn.rollback();
        } catch(Exception e)
        {...}
     }
5.把事务再改成自动提交(默认状态)
   conn.setAutoCommit(true);
  解答各种疑问
  1.回滚的目的是什么呢?
  目的是使得sql1,sql2。。。等操作要么全部执行成功,要么全部执行不成功,这也是为什     么把这几个sql语句当成一个事务来处理的目的。
  2.回滚从哪里开始回滚,我如何控制回滚的起始点。
  其实是可以设置存储点的 Savepoint piont = conn.setSavepoint();
                         conn.rollback(point);
  如果你没有设置存储点,他会回滚到你设置禁止事务自动提交的时候,因为你是先设置禁止自动提交的,再进行executeUpdate(sql)的,所以他会回滚到你的所有执行的这几个sql语句前的状态。
分享到:
评论
2 楼 阴霾中的阳光 2015-04-03  
请问 如果是自动提交的话,每执行一句sql 数据就直接存储到数据库吗
1 楼 yangzg216 2011-10-06  
这是我花费了一个多小时,才总结出来的。。。希望能对自己以后的开发有点帮助,也希望能对广大读者有点帮助哈。。。有哪些错误尽管指出来啊,我会虚心接受的。。。

相关推荐

    Spring/SpringMVC/MyBatis整合+事务回滚

    7. **实现事务回滚**:当在@Transactional注解的方法中发生异常时,Spring会自动回滚事务。例如,如果在保存数据时发生错误,整个事务将被回滚,保证数据的一致性。 8. **测试与调试**:完成整合后,通过编写单元...

    JDBC事务管理项目

    “JDBC事务管理项目”涵盖了如何在Java应用中利用JDBC进行事务控制,包括开启手动事务、提交、回滚以及设置事务隔离级别等。理解并掌握这些知识对于开发健壮的数据库应用至关重要,能够确保数据的完整性和一致性。

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

    ### JDBC事务控制详解 在数据库应用开发中,事务管理是一项重要的功能,它确保了一系列操作能够作为一个整体被正确地执行或回滚。Java Database Connectivity (JDBC) 是 Java 平台中用于连接数据库的标准 API,提供...

    spring分别与jdbc和hibernate结合的事务控制--案例

    同时,Spring还提供了编程式事务管理,允许在代码中显式地开始、提交、回滚事务,但这种方式通常在复杂场景中使用。 接下来,我们讨论Spring与Hibernate的集成。Hibernate是一个流行的ORM(对象关系映射)框架,它...

    Spring事务管理和SpringJDBC思维导图

    Spring JDBC提供了一个JdbcTemplate类,该类处理了JDBC的琐碎部分,如打开和关闭连接、处理异常和自动提交。JdbcTemplate提供了多种方法,如update()用于执行更新操作,query()用于查询,还有call()用于存储过程调用...

    JDBC事物应用源码文件

    JDBC事务应用源码文件通常包含了一系列用于演示如何在Java程序中管理和控制数据库事务的示例代码。以下是关于JDBC事务应用的核心知识点: 1. **事务的基本概念**:事务是数据库操作的基本单元,它封装了一组逻辑...

    spring-控制事物回滚

    - 使用`PlatformTransactionManager`接口:这是Spring提供的编程式事务管理接口,通过实现该接口的实例(如`DataSourceTransactionManager`或`JtaTransactionManager`)进行事务的开始、提交、回滚等操作。...

    jdbc知识带注释

    本篇文章将深入探讨JDBC的基础知识,包括连接数据库、执行SQL语句、处理结果集以及关闭资源。 1. **JDBC驱动** JDBC驱动是Java程序与数据库之间的桥梁,分为四种类型:JDBC-ODBC桥接驱动、网络纯Java驱动、直接...

    每日作业卷答案2

    在训练案例中,展示了使用 JDBC 的工具类进行事务处理的示例,包括获取连接、关闭自动提交、执行 SQL 语句、捕获异常以及根据异常情况决定提交或回滚事务。 总结来说,这个每日作业卷主要涵盖了 MySQL 中的事务...

    jdbc入门、分页以及事务

    1. **开启事务**: 通过`Connection`对象的`setAutoCommit(false)`方法关闭自动提交,从而手动控制事务的开始。 2. **提交事务**: 使用`Connection`对象的`commit()`方法提交事务,这将永久保存所有的数据库更改。 ...

    spring事务操作试验

    在Spring中,DataSourceTransactionManager是用于JDBC事务管理的默认实现。使用它,你可以控制事务的开始、提交、回滚以及设置事务隔离级别。 在Spring事务中,有几种常见的隔离级别可供选择,包括读未提交(READ ...

    Java事务管理学习之JDBC详解

    Java事务管理学习之JDBC详解是Java事务管理学习的重要组成部分,文章详细介绍了Java事务管理学习之JDBC的相关知识点,包括事务的概念、特性、类型、JDBC事务管理等。 一、事务的概念 事务是数据库的逻辑工作单位,...

    JDBC笔记_JDBC学习笔记_

    2. 设置自动提交:默认情况下,JDBC连接处于自动提交模式。可以调用`Connection.setAutoCommit(false)`关闭自动提交,手动控制事务开始和结束。 3. 提交和回滚事务:通过`commit()`提交事务,`rollback()`回滚事务...

    java之jdbc项目文件

    // 关闭自动提交 try { // 执行SQL操作 conn.commit(); // 提交事务 } catch (SQLException e) { conn.rollback(); // 回滚事务 } ``` 8. **数据库元数据MetaData**: Connection对象的getMetaData()方法...

    常用数据库-jdbc连接

    在Connection对象上设置自动提交为false后,即可手动控制事务的提交和回滚。 4. **批处理**: 对于大量相似的SQL操作,JDBC提供了批处理功能,可以一次性发送多个SQL命令,提高效率。 5. **预编译的...

    自己封装的小框架--JDBC封装 Action层封装 手动事务管理

    3. 提交或回滚:如果所有操作都成功,提交事务;如果有任何错误,回滚事务以撤销所有更改。 4. 异常处理:在事务过程中,对可能出现的异常进行捕获和处理,决定是否需要回滚事务。 在这个小框架中,上述三个部分...

    01_传智播客JDBC_jdbc的理论概述.rar

    通过`Connection`对象的`setAutoCommit(false)`关闭自动提交,然后手动调用`commit()`或`rollback()`来控制事务边界。 5. **批处理**:对于大量相似的SQL操作,JDBC提供批处理功能,可以一次提交多个SQL命令,减少...

    jdbc.rar_java jdbc

    JDBC支持事务控制,包括开启事务、提交事务、回滚事务。通过Connection对象的`setAutoCommit(false)`关闭自动提交,手动调用`commit()`或`rollback()`。 7. **GUI与JDBC结合**: 在GUI环境中,如Swing或JavaFX,...

    MySQL_4_JDBC高级操作和事务1

    **JDBC事务操作** 在Java中,你可以使用Connection对象的`setAutoCommit()`方法来开启或关闭自动提交。关闭自动提交后,你需要手动调用`commit()`来提交事务,或者在发生错误时调用`rollback()`来回滚事务。例如: ...

    jdbc的lib.zip

    4. **事务管理**:JDBC支持开始、提交和回滚事务。 **Spring与JDBC的整合** Spring框架通过其`org.springframework.jdbc`包简化了JDBC的使用,提供了一层抽象,减少了代码量,提高了可读性和可维护性。以下是一些...

Global site tag (gtag.js) - Google Analytics