`

spring事务处理:如果一个事务中有两个SQL,一个成功,另一个失败但被Try catch住了,这时会有什么问题

 
阅读更多
try {
	con.setAutoCommit(false);
	//这句让正常执行
	con.createStatement().execute("insert into sys_admin values(12,'zhangs','zhangs')");
	//这句由于表不存在,所以会报异常
	con.createStatement().execute("insert into sys_admin1 values(2,'zhangs','zhangs')");
} catch (Exception e) {
	e.printStackTrace();
}finally{
	con.commit();//此处的提交会将第一句提交,第二句由于异常不被提交。
}

 以上结果会出现部分提交部分失败的现象,违反了事务的原子性。

SPRING中的场景和以上是类似的。

所以通常的处理是:

try {
	con.setAutoCommit(false);
	//这句让正常执行
	con.createStatement().execute("insert into sys_admin values(121,'zhangs','zhangs')");
	//这句由于表不存在,所以会报异常
	con.createStatement().execute("insert into sys_admin1 values(2,'zhangs','zhangs')");
	con.commit();
} catch (Exception e) {
	e.printStackTrace();
	con.rollback();
}finally{
}

 

分享到:
评论

相关推荐

    spring事务全解释

    在Spring框架中,事务管理是核心功能之一,它使得开发者能够方便地控制数据库操作的原子性、一致性、隔离性和持久性,确保数据的完整性和可靠性。本文将深入解析Spring中的事务管理机制。 首先,我们需要理解事务的...

    Spring 框架的事务管理及应用

    Spring框架的核心功能包括一个容器、一个用于配置和组织组件的框架,以及一系列内置于框架中的服务,如事务管理、持久化支持和Web用户界面服务。作为一个轻量级的J2EE框架,Spring为构建和组织J2EE应用程序提供了一...

    spring JDBC事务管理

    使用这种方式,事务边界由try-catch-finally块定义,事务的回滚和提交都在异常处理中完成。虽然灵活,但可能会使代码变得复杂,不易于维护。 2. **声明式事务管理**:这是Spring的一个强大特性,允许开发者在配置...

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

    在这个例子中,`addUser`方法会被Spring自动包裹在一个事务中,如果方法执行过程中发生异常,事务会回滚;否则,当方法执行完毕,事务会被提交。 **六、hibernate.cfg.xml配置** 在Hibernate的配置文件中,可以设置...

    Spring+ibatis 保留ibatis事务的配置

    通常情况下,Spring 提供了自己的事务管理机制,但有时候开发人员可能希望使用ibatis本身的事务处理方式。例如,在某些特定业务场景下,需要更细粒度地控制事务的提交或回滚逻辑,这时候使用ibatis事务就显得尤为...

    Spring事务管理.docx

    6、事务的传播行为在 Spring 中,事务的传播行为决定了一个事务方法被另一个事务方法调用时,如何进行事务管理。例如,`PROPAGATION_REQUIRED` 表示如果当前存在事务,则加入该事务;如果不存在,则新建一个事务。 ...

    关于事务处理的一套流程

    以下是对Java中事务处理一套流程的详细说明: 1. **事务的概念**:事务是数据库操作的基本单元,它包含一组逻辑操作,这些操作要么全部完成,要么全部不完成。事务具有ACID(原子性、一致性、隔离性和持久性)特性...

    JdbcTemplate的事务控制.docx

    在软件开发过程中,事务管理是非常重要的一个环节,尤其是在处理数据库操作时。事务能够确保一系列数据库操作要么全部成功,要么全部失败,从而保持数据的一致性和完整性。`JdbcTemplate`作为Spring框架中的一个重要...

    Java中的事务处理

    在上述代码中,`updateUserAndAccount`方法内部的数据库操作将被一个事务包围,如果出现异常,整个事务会被回滚,保证了数据的一致性。 除此之外,Java事务处理还包括事务的隔离级别设置,如READ UNCOMMITTED、READ...

    spring高级编程详解

    2. **注意嵌套事务**:当一个方法调用了另一个带有`@Transactional`注解的方法时,可能会涉及到嵌套事务的问题。通常情况下,内部方法将参与外部方法的事务,除非显式指定不同的传播行为。 3. **异常处理**:正确...

    ibatis事务控制案例

    事务是一组数据库操作,这些操作被视为一个整体,要么全部成功,要么全部回滚。在数据库管理系统中,事务有四个特性,通常称为ACID属性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性...

    Spring事务管理只对出现运行期异常进行回滚

    3. **事务的传播行为**:定义了一个事务方法在另一个事务方法中如何运行,例如PROPAGATION_REQUIRED(默认值,如果已有事务则加入,否则新建)、PROPAGATION_REQUIRES_NEW(总是新建事务,即使当前存在事务)等。...

    开发中的java中的事务

    特别是在涉及多个数据库操作时,如果这些操作不能作为一个整体成功执行,则整个事务应被回滚,以保持数据的一致性。本文将详细探讨在Java开发中如何使用事务,以及如何通过事务来提高应用程序的安全性和规范性。 ##...

    Java事务的简单代码

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

    JAVA100例之实例59 JAVA对事务的处理

    1. **原子性**:一个事务中的所有操作被视为一个整体,要么全部完成,要么全部回滚,不会出现部分完成的情况。 2. **一致性**:事务完成后,系统状态必须保持一致,即事务执行前后的数据库状态应满足所有的业务规则...

    Spring JDBC实现代码

    在IT行业中,Spring框架是Java开发中的一个核心组件,它为开发者提供了许多便利,包括依赖注入、面向切面编程以及数据库操作等。Spring JDBC模块是Spring框架的一部分,它简化了Java Database Connectivity (JDBC)的...

    Spring专业学习资料

    事务可以确保一组操作要么全部成功,要么全部失败,从而保持数据的一致性和完整性。Spring提供了强大的事务管理功能,可以实现: - **事务边界控制**:明确事务的开始和结束。 - **异常回滚**:当事务中的某个操作...

    Spring整合JDBC实现转账业务demo源代码

    在这个例子中,`@Transactional`注解启动了一个新的事务,如果任何异常发生,事务会被回滚,从而确保数据一致性。如果一切顺利,事务会自动提交。 以上就是Spring整合JDBC实现转账业务的基本流程。实际应用中,可能...

Global site tag (gtag.js) - Google Analytics