首先得清楚什么时候使用事务。
当你需要一次执行多条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语句前的状态。
分享到:
相关推荐
7. **实现事务回滚**:当在@Transactional注解的方法中发生异常时,Spring会自动回滚事务。例如,如果在保存数据时发生错误,整个事务将被回滚,保证数据的一致性。 8. **测试与调试**:完成整合后,通过编写单元...
“JDBC事务管理项目”涵盖了如何在Java应用中利用JDBC进行事务控制,包括开启手动事务、提交、回滚以及设置事务隔离级别等。理解并掌握这些知识对于开发健壮的数据库应用至关重要,能够确保数据的完整性和一致性。
### JDBC事务控制详解 在数据库应用开发中,事务管理是一项重要的功能,它确保了一系列操作能够作为一个整体被正确地执行或回滚。Java Database Connectivity (JDBC) 是 Java 平台中用于连接数据库的标准 API,提供...
同时,Spring还提供了编程式事务管理,允许在代码中显式地开始、提交、回滚事务,但这种方式通常在复杂场景中使用。 接下来,我们讨论Spring与Hibernate的集成。Hibernate是一个流行的ORM(对象关系映射)框架,它...
Spring JDBC提供了一个JdbcTemplate类,该类处理了JDBC的琐碎部分,如打开和关闭连接、处理异常和自动提交。JdbcTemplate提供了多种方法,如update()用于执行更新操作,query()用于查询,还有call()用于存储过程调用...
JDBC事务应用源码文件通常包含了一系列用于演示如何在Java程序中管理和控制数据库事务的示例代码。以下是关于JDBC事务应用的核心知识点: 1. **事务的基本概念**:事务是数据库操作的基本单元,它封装了一组逻辑...
- 使用`PlatformTransactionManager`接口:这是Spring提供的编程式事务管理接口,通过实现该接口的实例(如`DataSourceTransactionManager`或`JtaTransactionManager`)进行事务的开始、提交、回滚等操作。...
本篇文章将深入探讨JDBC的基础知识,包括连接数据库、执行SQL语句、处理结果集以及关闭资源。 1. **JDBC驱动** JDBC驱动是Java程序与数据库之间的桥梁,分为四种类型:JDBC-ODBC桥接驱动、网络纯Java驱动、直接...
在训练案例中,展示了使用 JDBC 的工具类进行事务处理的示例,包括获取连接、关闭自动提交、执行 SQL 语句、捕获异常以及根据异常情况决定提交或回滚事务。 总结来说,这个每日作业卷主要涵盖了 MySQL 中的事务...
1. **开启事务**: 通过`Connection`对象的`setAutoCommit(false)`方法关闭自动提交,从而手动控制事务的开始。 2. **提交事务**: 使用`Connection`对象的`commit()`方法提交事务,这将永久保存所有的数据库更改。 ...
在Spring中,DataSourceTransactionManager是用于JDBC事务管理的默认实现。使用它,你可以控制事务的开始、提交、回滚以及设置事务隔离级别。 在Spring事务中,有几种常见的隔离级别可供选择,包括读未提交(READ ...
Java事务管理学习之JDBC详解是Java事务管理学习的重要组成部分,文章详细介绍了Java事务管理学习之JDBC的相关知识点,包括事务的概念、特性、类型、JDBC事务管理等。 一、事务的概念 事务是数据库的逻辑工作单位,...
2. 设置自动提交:默认情况下,JDBC连接处于自动提交模式。可以调用`Connection.setAutoCommit(false)`关闭自动提交,手动控制事务开始和结束。 3. 提交和回滚事务:通过`commit()`提交事务,`rollback()`回滚事务...
// 关闭自动提交 try { // 执行SQL操作 conn.commit(); // 提交事务 } catch (SQLException e) { conn.rollback(); // 回滚事务 } ``` 8. **数据库元数据MetaData**: Connection对象的getMetaData()方法...
在Connection对象上设置自动提交为false后,即可手动控制事务的提交和回滚。 4. **批处理**: 对于大量相似的SQL操作,JDBC提供了批处理功能,可以一次性发送多个SQL命令,提高效率。 5. **预编译的...
3. 提交或回滚:如果所有操作都成功,提交事务;如果有任何错误,回滚事务以撤销所有更改。 4. 异常处理:在事务过程中,对可能出现的异常进行捕获和处理,决定是否需要回滚事务。 在这个小框架中,上述三个部分...
通过`Connection`对象的`setAutoCommit(false)`关闭自动提交,然后手动调用`commit()`或`rollback()`来控制事务边界。 5. **批处理**:对于大量相似的SQL操作,JDBC提供批处理功能,可以一次提交多个SQL命令,减少...
JDBC支持事务控制,包括开启事务、提交事务、回滚事务。通过Connection对象的`setAutoCommit(false)`关闭自动提交,手动调用`commit()`或`rollback()`。 7. **GUI与JDBC结合**: 在GUI环境中,如Swing或JavaFX,...
**JDBC事务操作** 在Java中,你可以使用Connection对象的`setAutoCommit()`方法来开启或关闭自动提交。关闭自动提交后,你需要手动调用`commit()`来提交事务,或者在发生错误时调用`rollback()`来回滚事务。例如: ...
4. **事务管理**:JDBC支持开始、提交和回滚事务。 **Spring与JDBC的整合** Spring框架通过其`org.springframework.jdbc`包简化了JDBC的使用,提供了一层抽象,减少了代码量,提高了可读性和可维护性。以下是一些...