`
征途2010
  • 浏览: 248515 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring手动事务控制

阅读更多

在项目开发中需要用到手动事务进行控制。现说下遇到的问题以及解决方案:

如果程序需要使用嵌套事务,则需要在配置文件中添加一个配置属性,如下:

<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
	<property name="sessionFactory">
		<ref bean="sessionFactory" />
	</property>
	<property name="nestedTransactionAllowed" value="true"/>
</bean>

 

如果需要手动事务进行控制,可以使用PlatformTransactionManager代码如下

DefaultTransactionDefinition def = new DefaultTransactionDefinition(); 
def.setIsolationLevel(TransactionDefinition.ISOLATION_READ_COMMITTED); 
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_NESTED); 
PlatformTransactionManager txManager = 
(PlatformTransactionManager) BeanLocator.getInstance().getBean("transactionManager"); 
TransactionStatus transactionStatus = txManager.getTransaction(def); 
try { 

} catch (Exception e) { 
logger.error("处理基地同步结算单出错" + settlement.toString(), e); 
txManager.rollback(transactionStatus); 
throw new XmlHttpException(IoddConstant.PRM_OTHER_ERROR,"处理发布结算单消息失败"); 
}

 

如果是结合声明式事务进行控制,可以使用下面代码:

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();

 

分享到:
评论

相关推荐

    spring框架手动提交事务,jdbctample

    注意:只是jdbc自带的jdbctample,不能 用于整合mybatis框架的事务,我整合了,事务不起作用!!!! 按老师的说法是基于xml方式,但不准确,因为也用到了注解 &lt;aop:aspectj-autoproxy proxy-target-class="true"&gt;...

    Spring事务管理Demo

    这种方式灵活性高,但容易导致事务控制代码与业务逻辑混淆,不易维护。 2. **声明式事务管理**:这是Spring最常用的方式,通过在配置文件或者使用`@Transactional`注解来定义事务边界,使得事务管理与业务逻辑分离...

    实验 spring 声明事务

    Spring 提供了声明式事务管理,允许开发者在不编写事务管理代码的情况下实现事务控制,极大地简化了事务处理。 实验环境主要包括 Eclipse 或 MyEclipse 开发工具,以及 Spring 4.0 及以上版本,JDK 1.7 及以上版本...

    Spring的事务管理小案例

    案例中的"springStudy04_transaction"可能包含了一个使用Spring进行事务管理的简单应用程序,其中可能包括了数据库连接配置、数据访问对象(DAO)的实现以及事务控制的代码。你可以通过阅读源代码来了解如何在实际...

    spring声明事务,编程事务实现

    Spring 声明事务是指使用 Spring 框架来管理事务,实现事务控制。声明式事务管理是建立在 AOP 之上的,它的本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行...

    Spring Hibernate事务实例

    本教程将深入探讨如何在Spring框架中利用`TransactionInterceptor`进行声明式事务管理,与Hibernate集成实现高效的数据库事务控制。 首先,了解事务管理是至关重要的。事务是一组数据库操作,这些操作要么全部成功...

    spring 自定义事务管理器,编程式事务,声明式事务@Transactional使用

    同时,你可以定义自定义的事务注解,以实现更灵活的事务控制。 例如,假设你创建了一个名为`CustomTransactionManager`的类,你可以这样使用自定义事务注解: ```java @Retention(RetentionPolicy.RUNTIME) @...

    JdbcTemplate的事务控制.docx

    然而,单纯使用`JdbcTemplate`进行数据库操作时,并不能自动管理事务,因此我们需要了解如何通过`JdbcTemplate`结合Spring框架来实现事务控制。 #### 二、原生 JDBC 的事务控制 在没有使用任何框架的情况下,我们...

    Spring2.0 事务处理

    1. **编程式事务管理**:这种管理方式要求开发者手动编写代码来开启、提交、回滚事务。虽然具有更高的灵活性,但可能导致代码的复杂性增加,不易于维护。在Spring 2.0中,可以使用`PlatformTransactionManager`接口...

    spring 事务传播 demo

    在Java后端开发中,Spring的事务管理机制大大简化了事务控制,使得开发者可以更专注于业务逻辑,而不用关心底层事务的管理。通过声明式事务管理,我们只需在方法上添加@Transactional注解,而无需编写手动的try-...

    深入理解spring的事务管理机制

    在使用Spring的事务管理功能之后,开发者无需手动编写上述事务控制的代码,这些工作将由Spring框架自动完成。具体来说,Spring通过以下步骤实现事务管理: 1. **开启注解驱动**:在配置文件中开启注解驱动,并在...

    spring hibernate 事务管理学习笔记(一)

    在Spring配置文件中,我们需要开启事务管理器,并在需要事务控制的Service层方法上添加`@Transactional`注解。这个注解允许我们指定事务的传播行为(如REQUIRED、REQUIRES_NEW等)、隔离级别(如READ_COMMITTED、...

    Spring Boot数据库事务控制.zip

    在Spring Boot中,数据库事务控制是实现业务逻辑一致性的重要手段。本资料主要围绕Spring Boot如何进行数据库事务管理进行深入探讨。 首先,我们需要了解什么是事务。事务是数据库操作的基本单位,它保证了一组...

    小码农的代码(二)----------SpringJDBC事务控制

    本篇文章我们将深入探讨Spring JDBC事务控制,这是Spring框架中处理数据持久化的一个关键特性。Spring JDBC提供了对数据库事务的高级封装,使得开发者能够方便、高效地管理事务,而无需过多关注底层实现细节。 首先...

    Spring事务与Java事务比较

    对比 Java 中的事务管理,通常指的是 JDBC 的事务管理,需要手动调用 Connection 对象的 commit() 和 rollback() 方法。这种方式完全由开发者控制,灵活性高但容易出错,且事务管理代码会与业务代码混合在一起。 ...

    SPRING事务机制DEMO

    通过分析这个文件,我们可以看到如何将AOP和事务管理结合起来,实现对数据库操作的事务控制,以及在特定操作前后执行自定义逻辑。 总结来说,Spring事务机制和AOP是Java开发中的重要工具,它们帮助我们构建可维护、...

    使用Spring的事务模板

    `TransactionTemplate`的使用可以让你在没有AOP的情况下享受到事务管理的便利,同时避免了手动管理事务的复杂性。它提供了一种灵活的方式来控制事务的开始、提交和回滚,使得代码更加清晰和易于测试。 在`...

    Spring4+SpringMVC+Mybaties 内含有事务控制

    本教程将深入探讨如何在Spring4、SpringMVC和MyBatis集成环境下实现事务控制。 首先,让我们了解这三个组件的基本概念: 1. **Spring4**:Spring是一个开源的Java平台,它提供了全面的企业级应用开发解决方案,...

    4.Spring中的JdbcTemplate,Spring中的的事务,

    #### Spring事务控制的基础概念 Spring框架支持两种类型的事务管理:编程式事务管理和声明式事务管理。 - **编程式事务管理**:通过编码的方式来管理事务,适用于需要细粒度控制的情况。 - **声明式事务管理**:...

    Hibernate缓存与spring事务详解

    手动调用`TransactionTemplate`或在方法上添加注解来开启和提交事务,适用于简单的事务处理。 2. **声明式事务管理** - 更常见的做法是使用`@Transactional`注解,Spring AOP会在方法执行前后自动处理事务的开始、...

Global site tag (gtag.js) - Google Analytics