Spring的事务管理机制
2012-06-26 15:32
507 查看
事务就是对一系列的数据库操作(比如插入多条数据)进行统一的提交或回滚操作,如果插入成功,那么一起成功,如果中间有一条出现异常,那么回滚之前的所有操作。这样可以防止出现脏数据,防止数据库数据出现问题。开发中为了避免这种情况一般都会进行事务管理。
在JDBC中是通过Connection对象进行事务管理的,默认是自动提交事务,可以手工将自动提交关闭,通过commit方法进行提交,rollback方法进行回滚,如果不提交,则数据不会真正的插入到数据库中。
Hibernate中是通过Transaction进行事务管理,处理方法与JDBC中类似,是在DAO层进行事务管理的。
Spring中也有自己的事务管理机制,一般是使用TransactionMananger进行管理,可以通过Spring的注入来完成此功能。
所以在SSH中,我们一般用Hibernate的事务管理方式也可以选择用Spring来进行事务管理。但是我个人认为,从逻辑上来讲,用Spring管理模式会更加好,在Service层,我们每一个业务其实才是真正的一个事务,里面可能调用多个Dao类,对多个数据库多种操作同时进行,那么在这里进行事务管理就表示,要成功大家一起成功,失败大家一起失败。更符合我们认为的AOP编程的思想。
spring配置文件的写法
service的写法
在JDBC中是通过Connection对象进行事务管理的,默认是自动提交事务,可以手工将自动提交关闭,通过commit方法进行提交,rollback方法进行回滚,如果不提交,则数据不会真正的插入到数据库中。
Hibernate中是通过Transaction进行事务管理,处理方法与JDBC中类似,是在DAO层进行事务管理的。
Spring中也有自己的事务管理机制,一般是使用TransactionMananger进行管理,可以通过Spring的注入来完成此功能。
所以在SSH中,我们一般用Hibernate的事务管理方式也可以选择用Spring来进行事务管理。但是我个人认为,从逻辑上来讲,用Spring管理模式会更加好,在Service层,我们每一个业务其实才是真正的一个事务,里面可能调用多个Dao类,对多个数据库多种操作同时进行,那么在这里进行事务管理就表示,要成功大家一起成功,失败大家一起失败。更符合我们认为的AOP编程的思想。
spring配置文件的写法
<!-- Transaction Manager --> <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean> <!-- Base Transaction Proxy --> <bean id="baseTxProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager"> <ref local="transactionManager"/> </property> <property name="transactionAttributes"> <props> <prop key="*">PROPAGATION_REQUIRED</prop> <prop key="save*">PROPAGATION_REQUIRED</prop> <prop key="load*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop> <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop> </props> </property> </bean>
service的写法
<!-- Service 的管理 --> <bean id="loginoutService" parent="baseTxProxy"> <property name="target"> <bean class="org.hstaoshu.service.LoginoutService"> <property name="loginoutDAO" ref="loginoutDAO" /> <property name="adminDAO" ref="adminDAO" /> </bean> </property> </bean>
相关文章推荐
- Spring Transaction + MyBatis SqlSession事务管理机制[marked]
- Spring 使用注解方式进行事务管理--注解回滚机制
- Spring3事务管理机制(杂谈)
- Spring的事务管理机制和传播机制
- Spring3核心技术之事务管理机制(转载)
- spring 事务管理机制
- Spring 的Hibernate事务管理机制 .
- Spring的事务管理机制
- Spring的事务管理机制
- Spring Transaction + MyBatis SqlSession事务管理机制研究学习
- Spring3核心技术之事务管理机制
- Spring4的知识应用总结(六)——Spring事务管理机制
- 博客园首页新随笔联系管理订阅 随笔- 70 文章- 22 评论- 5 Spring 事务机制详解
- Spring3核心技术之事务管理机制
- Spring事务管理机制的实现原理-动态代理
- Spring事务隔离级别与传播机制详解,spring+mybatis+atomikos实现分布式事务管理
- Spring3核心技术之事务管理机制
- Spring的事务管理机制
- Spring的AOP和事务管理机制概览
- Spring的事务管理机制