Transactions
使用Mybatis-Spring的初衷之一是允许Mybatis参与到Spring的事务管理,而不是创建一个新的Mybatis的事务。
标准配置
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
这里的dataSource必须和SqlSessionFactoryBean是同一个,则将不会起作用。
Mybatis的SqlSession提供了明确的方法处理事务编程,但是当使用Mybatis-Spring时Spring将会给beans注入Spring管理的SqlSession,这也意味着Spring将总是管理着你的事务。
对一个Spring管理的SqlSession调用commit(),rollback(),close()方法是不被允许的。如果这样做,将会抛出UnsupportedOperationException异常。
不论JDBC的autocommit的设置,一个SqlSession的数据方法的执行或是Spring管理之外的映射类方法的执行,都将会自动提交。如果想手动提交事务,需使用一个名为PlatformTransactionManager的类,例如:
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = txManager.getTransaction(def);
try {
userMapper.insertUser(user);
}
catch (MyException ex) {
txManager.rollback(status);
throw ex;
}
txManager.commit(status);
分享到:
相关推荐
9. **Testing**: With MyBatis-Spring, testing becomes straightforward as you can use Spring's testing framework to set up transactions, rollbacks, and mock dependencies. This helps ensure that your ...
SSM框架,即Spring MVC、Spring和MyBatis的组合,是Java开发中常见的Web应用程序框架。这个压缩包包含了这三个核心组件的jar包,为开发者提供了便捷的开发环境,无需逐一下载和配置。 1. Spring MVC:Spring MVC是...
在Spring中整合Atomikos,可以实现全局的事务管理,即使跨越多个数据库,也能确保ACID(原子性、一致性、隔离性、持久性)特性。 分布式事务的核心在于解决CAP(一致性、可用性、分区容错性)理论中的问题,而2PC...
而Spring的JPA和ORM支持则整合了Hibernate、MyBatis等ORM框架,使得对象持久化更为简便。 4. **Spring Web**:这部分主要涉及Web应用的开发,包括Model-View-Controller(MVC)架构的支持。Spring MVC提供了灵活的...
除了上述核心组件,Spring框架还包括了其他模块,如Spring MVC(用于Web应用的模型-视图-控制器架构)、Spring JDBC(简化JDBC操作)、Spring ORM(支持多种ORM框架如Hibernate、MyBatis)、Spring Transactions...
此外,手册还会涉及Spring与其他技术的整合,如Spring Security用于安全控制,Spring Batch用于批处理,以及Spring Data用于简化数据访问层的开发。对于进阶开发者,手册可能会深入探讨Spring的高级特性,如自定义...
Spring框架还提供了大量的模块,包括Spring MVC用于构建Web应用,Spring JDBC和Spring JPA提供数据库操作支持,Spring ORM整合各种ORM框架如Hibernate,Spring Transactions管理事务,Spring Security处理应用安全,...
SSM(Spring、SpringMVC、MyBatis)框架整合是Java Web开发中常见的技术栈,主要用于构建高效、模块化的Web应用。在这个基于SSM+ExtJS整合的个人记账管理系统中,我们可以深入探讨以下几个核心知识点: 1. **Spring...
SSM(Spring、SpringMVC、MyBatis)是一个经典的Java web开发框架组合,常用于构建企业级应用。本项目“基于SSM的智能停车场管理系统”是一个毕业设计示例,旨在实现对停车场的智能化管理,包括车辆进出管理、车位...