ibatis 配置事务如下(applicationContext-dao.xml):
<!-- 数据源配置 --> <bean id="dbtec2" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://${dbtec2.ip}:3306/dbtec2?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull"></property> <property name="username" value="${dbtec2.username}"></property> <property name="password" value="${dbtec2.password}"></property> <property name="maxActive" value="100"></property> <property name="maxIdle" value="30"></property> <property name="maxWait" value="500"></property> <property name="defaultAutoCommit" value="false"></property> </bean> <!-- 数据源注入session工厂 --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <!-- 映射MYBATIS的XML文件 --> <property name="mapperLocations" value="classpath*:com/octlink/tec2/bus/dao/*.xml" /> <!-- 引用数据源 --> <property name="dataSource" ref="dbtec2" /> <!-- 数据类型别名 --> <property name="typeAliasesPackage" value="com.octlink.tec2.model" /> </bean> <bean id="transactionManagerForIbatis" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dbtec2" /> </bean> <tx:advice id="txAdvice" transaction-manager="transactionManagerForIbatis"> <tx:attributes> <tx:method name="get*" read-only="true" /> <tx:method name="insert*" propagation="REQUIRED" /> <tx:method name="delete*" propagation="REQUIRED" /> <tx:method name="update*" propagation="REQUIRED" /> <tx:method name="*" propagation="REQUIRED" /> </tx:attributes> </tx:advice> <aop:config proxy-target-class="false"> <aop:pointcut id="serviceMethod" expression="execution(* com.octlink.tec2.bus.system.*.service.*.*.*(..))" /> <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceMethod" /> </aop:config>
Spring (spring-servlet):
<!-- 自动扫描bean,把作了注解的类转换为bean --> <context:component-scan base-package="com.octlink.tec2.bus.system.*.controller" />
注意:配置不正确导致回滚失败。如果spring-servlet文件扫描组件时,包含了service层,在事务控制的过程中引入的不是applicationContext-dao里面定义的service,这样就没事务控制了,导致事务失败。所以扫描组件时,不要包含service层。
相关推荐
这种配置方式使得ibatis能够在不依赖Spring事务管理的情况下独立工作,从而实现了对ibatis事务的保留。 #### 四、实现自定义控制回滚 当保留ibatis事务后,开发者可以在业务逻辑中更自由地控制事务的提交和回滚。...
同时,Spring的事务管理确保了数据的一致性,比如在处理数据库操作时进行自动的回滚和提交。 **iBatis** 是一个持久层框架,它简化了SQL操作,将SQL语句与Java代码分离。在本demo中,iBatis可能会被用来执行员工...
只需在需要事务的Service层方法上添加@Transactional注解,Spring会自动管理事务的开始、提交或回滚。 5. **高可用性和负载均衡**:在Spring中,可以使用Ribbon或Hystrix组件实现对MySQL集群的负载均衡。这些组件会...
3. **事务控制**:通常在Service层使用@Transactional注解进行事务控制,Spring会自动管理事务的开启、提交和回滚。 4. **异常处理**:在Controller层捕获并处理可能抛出的异常,确保正常响应。 这些jar包的集合...
本示例“spring+ibatis声明式事务Demo”将探讨如何在Spring与iBatis集成环境中使用声明式事务管理。声明式事务管理允许开发者通过配置来控制事务,无需在代码中显式处理事务开始、提交和回滚。 **Spring框架** 是一...
当我们谈论"spring+ibatis声明式事务Demo"时,我们关注的是如何在Spring框架中利用iBatis实现声明式事务管理。 声明式事务管理是Spring框架提供的一种方便、高效的方式,使得开发者无需手动控制事务的开始、提交、...
在集成Spring+iBatis+JOTM的环境中,Spring主要负责事务策略的配置和管理,iBatis则作为持久层框架,负责SQL的执行,而JOTM作为事务管理器,确保跨数据库的事务一致性。 1. **环境搭建** - 首先,确保安装了JDK ...
这样,一旦发生异常,Spring会自动回滚事务,保证数据一致性。 最后,关于Spring与Struts2的集成。Spring作为应用框架,负责依赖注入和事务管理;Struts2则作为MVC框架,处理请求和视图。结合Ibatis,我们可以创建...
本项目“spring+jotm+ibatis+mysql实现JTA分布式事务”旨在利用这些技术来确保在分布式环境中的数据一致性。下面将详细介绍这个项目所涉及的知识点。 首先,Spring框架是Java开发中最常用的应用框架之一,它提供了...
- 事务管理器(TransactionManager)配置,如`PlatformTransactionManager`,它与iBatis的数据源配置结合,控制事务的开始、提交和回滚。 - 数据源(DataSource)配置,定义如何连接到数据库。 - iBatis的...
同时,Spring的事务管理能力确保了对数据库操作的原子性和一致性,通过声明式事务管理,可以在XML配置文件中轻松设置事务边界,如开启、提交、回滚等操作。 Ibatis是轻量级的持久层框架,它简化了JDBC的繁琐工作,...
然后,Spring可以管理这些SqlSession,提供事务的开始、提交、回滚等操作。 5. **实际应用**:在项目中,开发者会创建具体的Action类,这些类通常会包含处理用户请求的方法,并通过注入的Service类调用业务逻辑。...
完成后,Spring会自动提交或回滚事务。 9. **最佳实践**: - 尽可能使用注解配置,以减少XML配置文件的复杂性。 - 使用Spring的AOP进行事务管理,使事务处理更透明。 - 为每个Mapper接口创建单独的配置,保持...
7. **事务管理**:Spring提供了声明式事务管理,通过在服务层的方法上添加@Transactional注解,可以自动进行事务的开启、提交或回滚,简化了事务处理代码。 8. **单元测试**:在源代码中,通常会有相应的JUnit测试...
5. **事务管理**:Spring的PlatformTransactionManager接口用于管理事务,可以自动进行回滚和提交,确保数据一致性。在配置文件中,我们可以选择合适的事务管理器,如DataSourceTransactionManager或...
通过AOP(面向切面编程)和TransactionProxyFactoryBean等工具,Spring可以自动处理事务的开始、提交、回滚等操作,开发者无需在业务逻辑代码中显式处理事务。在Spring中,我们可以设置事务的隔离级别、传播行为和...
Spring提供了声明式事务管理,只需在配置文件中设置事务边界,即可自动处理事务的提交和回滚,确保数据的一致性。 总的来说,Spring、Struts和iBATIS的整合能够为Java Web开发提供一个强大而灵活的架构。通过它们的...
在本项目中,很可能使用了@Transactional注解来实现声明式事务管理,这样可以在方法级别控制事务的开始、提交、回滚等操作,确保数据的一致性。 "分页排序查询"是Web应用中常见的需求,Spring MVC 和 Ibatis 结合...
Spring 是一个全面的后端开发框架,提供依赖注入、面向切面编程、事务管理等功能,而 iBATIS 是一个优秀的数据持久层框架,它简化了数据库操作,将 SQL 查询与 Java 代码分离。 在 Spring 和 iBATIS 的整合中,主要...