-
spring+ibatis 多数据源事务不回滚0
以下代码我的事务配置:
<!-- 事务拦截1 --> <bean id="transactionInterceptorProduct" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager" ref="transactionManagerProduct" /> <property name="transactionAttributes"> <props> <prop key="save">PROPAGATION_REQUIRED</prop> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="do*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <!-- 事务拦截2 --> <bean id="transactionInterceptorBbs" class="org.springframework.transaction.interceptor.TransactionInterceptor"> <property name="transactionManager" ref="transactionManagerBbs" /> <property name="transactionAttributes"> <props> <prop key="save">PROPAGATION_REQUIRED</prop> <prop key="insert*">PROPAGATION_REQUIRED</prop> <prop key="delete*">PROPAGATION_REQUIRED</prop> <prop key="update*">PROPAGATION_REQUIRED</prop> <prop key="do*">PROPAGATION_REQUIRED</prop> </props> </property> </bean> <!-- 管理你连接的地方--> <bean id="autoProxyCreator" abstract="true" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator"> <property name="beanNames"> <list> <value>holdProductManager</value> <value>tipManager</value> </list> </property> <property name="interceptorNames"> <list> <value>transactionInterceptorProduct</value> <value>transactionInterceptorBbs</value> </list> </property> </bean>
我在 holdProductManager bean 中的一个方法里面报出异常,发现事务不回滚。代码如下:
@Override public void doTranTest() throws Exception{ HoldProduct obj = new HoldProduct(); obj.setProductCname("多数据的配置测试"); obj.setProductCode("sldke sdei 123"); holdProductDao.save(obj); tipDao.get(1L); if (1 ==1) { throw new RuntimeException("2356"); } }
请问spring+ibatis 的多数据事务,应该怎么样配置呢 ?
2012年12月16日 10:02
2个答案 按时间排序 按投票排序
-
@Override
public void doTranTest() throws Exception{
HoldProduct obj = new HoldProduct();
obj.setProductCname("多数据的配置测试");
obj.setProductCode("sldke sdei 123");
holdProductDao.save(obj);
tipDao.get(1L);
if (1 ==1) {
throw new RuntimeException("2356");
}
}
你这段测试代码需要加事务的, 否则这段代码是无事物的。异常对之前的操作无影响
具体配置请参考
http://jinnianshilongnian.iteye.com/blog/14695242012年12月16日 10:16
相关推荐
给定的XML配置文件展示了如何在Spring中配置ibatis数据源以及ibatis事务管理器。首先,注释掉的`BasicDataSource`部分是用来配置数据源的,这里没有启用,而是选择了使用JNDI数据源。实际生产环境中,通常会使用...
3. **Ibatis配置**:Ibatis的配置文件中,需要指定数据源为Spring管理的数据源,这样Ibatis就能通过Spring获取数据库连接。同时,定义SQL映射文件,编写对应的XML映射语句。 4. **事务管理**:由于MySQL集群支持...
在分布式系统中,JTA(Java Transaction API)事务管理用于处理跨越多个数据源的事务,如数据库、消息队列等。JOTM(Java Open Transaction Manager)是一个开源的JTA事务管理器,可以在非J2EE环境下提供分布式事务...
在Spring中,事务管理器会与数据源配合,处理事务的开始、提交和回滚。 3. **@Transactional注解**:在业务服务类的方法上添加此注解,即可启用声明式事务管理。注解可以指定传播行为(如REQUIRED、REQUIRES_NEW等...
1. **配置**:在Spring配置文件中配置数据源、SqlSessionFactory,以及MapperScannerConfigurer扫描Mapper接口。 2. **Spring MVC与iBatis结合**:创建一个Service层,通过@Autowired注入Mapper接口,Service层调用...
当我们谈论"spring+ibatis声明式事务Demo"时,我们关注的是如何在Spring框架中利用iBatis实现声明式事务管理。 声明式事务管理是Spring框架提供的一种方便、高效的方式,使得开发者无需手动控制事务的开始、提交、...
- 事务管理器(TransactionManager)配置,如`PlatformTransactionManager`,它与iBatis的数据源配置结合,控制事务的开始、提交和回滚。 - 数据源(DataSource)配置,定义如何连接到数据库。 - iBatis的...
6. **集成过程**:Spring与iBatis的集成涉及到配置文件的设置,包括在Spring配置文件中声明iBatis的SqlSessionFactoryBean,以及在iBatis配置文件中配置数据源和事务管理器。此外,还需要编写Java DAO接口和对应的...
这包括在Spring配置文件中定义数据源、事务管理器以及对应的bean;在Struts的配置文件中定义Action并指定其事务属性;最后,在iBATIS的配置中设置数据源,并编写针对读库和写库的SQL映射文件。 值得注意的是,数据...
配置数据源(DataSource),这是Spring管理数据库连接的方式。可以使用Apache的DBCP或C3P0等连接池实现,或者使用Spring的AbstractDataSource类。 4. **SqlSessionFactory配置**: 创建SqlSessionFactoryBean,它...
整合Spring、Struts和iBATIS,首先需要配置Spring作为整个应用的上下文容器,负责管理所有组件,包括Struts的Action和iBATIS的数据源。在Spring配置文件中,我们需要定义Bean来表示Action和DAO(数据访问对象),并...
iBATIS 的配置文件(mybatis-config.xml)则包含了数据源、映射文件等信息。 4. **Mapper 接口与 XML 映射文件**:在 iBATIS 中,我们通常定义一个 Mapper 接口,这个接口的方法对应 SQL 语句,然后在对应的 XML ...
通过以上步骤,我们就完成了Spring与iBatis的集成配置,包括了数据源、SqlSessionFactory、SqlSessionTemplate、Mapper接口的扫描以及事务管理。这样,我们就可以在Spring的管理下,利用iBatis进行高效、灵活的数据...
3. **配置 MyBatis**:在实际项目中,你需要配置 MyBatis 的核心配置文件(mybatis-config.xml),包含数据源、事务管理器和环境等信息。同时,也需要创建映射文件(Mapper XML)来定义 SQL 语句。 4. **Mapper ...
最值得关注的部分是iBatis的事务管理配置,这里明确指定了事务管理器的类型为`JDBC`,并且定义了数据源的具体参数。 ```xml ``` 这样的配置意味着iBatis将使用JDBC的方式进行事务管理,即所有的事务...
Spring 配置文件中定义数据源、事务管理器以及 SqlSessionFactoryBean;iBATIS 配置文件中则包含数据源信息、SQL 映射文件路径等。 4. **MyBatis-Spring 桥接库**:为了简化整合过程,可以使用 MyBatis-Spring 这个...
6. **事务管理**:Spring提供了声明式事务管理,我们可以在方法上添加@Transactional注解,让Spring自动处理事务的开启、提交和回滚。 7. **使用Service和DAO**:在Spring的业务逻辑层Service中,通过@Autowired...
2. **配置文件**:在整合过程中,需要创建XML配置文件,如`sqlMapConfig.xml`来配置iBatis的基本设置,包括数据源、事务管理器等。同时,还需要在Spring的配置文件(如`applicationContext.xml`)中声明...
综上所述,`iBatis_Spring`源代码的学习涵盖了数据库连接、SQL映射、事务处理、依赖注入等多个核心概念,通过深入理解这些知识点,开发者可以更好地掌握企业级Java应用的开发技巧。在实际项目中,这样的整合可以带来...