Spring中的事务管理
来源:互联网 发布:淘宝网单管巴乌价格 编辑:程序博客网 时间:2024/05/21 11:13
1.1 理解事务
假设要去买一张电影票。买电影票这件事,涉及以下几个行为:
- 检查空余座位的数量,以便核实有足够的座位供你购买。
- 每卖出一张票,空余座位的数量就减少一个。
- 你为电影票付款。
- 将电影票发给你。
如果一切正常的话,你便将可以享受一部大片的乐趣,而电影院则将多几美元的收入。但是,如果有些环节出错了呢?例如,如果你使用一张已经达到限额的信用卡来支付,结果会怎么样呢?当然了,你不会拿到电影票,电影院也收不到你的钱。但是,如果座位的数量没有被复位到这次购买之前的那个数量,那么这场电影就可能会被人为地耗尽座位(从而损失销售额)。再或者,如果其他每一件事情都运行正常,但就是电影票发不出来。那么你将损失几美元,并且只能待在家里通过有线电视观看重新放映的影片了。
为保证不管是你还是电影院都不收损失,上述行为都应该被打包在一个事务里。作为一个事务,他们将被视作一个单一的行为,保证它们要么都完全成功,要么全部都被回滚,好像什么都没有发生过。
1.2 4个词解释事务。
ACID
- 原子性(Atomic)
- 一致性(Consistent)
- 隔离性(isolated)
- 持久性(Durable)
1.3 JDBC事务
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean>
1.4 Hibernate事务
<bean id="transactionManager" class="org.springframework.orm.hibernate.HibernateTransactionManager"> <!-- Hibernate 3.x <bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> --> <property name="sessionFactory" ref="sessionFactory"/> </bean>
1.5 JPA事务
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"><property name="entityManagerFactory" ref="entityManagerFactory" /></bean>
1.6 JDO事务
使用JdoTransactionManager,需要将一个javax.jdo.PersistenceManagerFactory实例装配到persistenceManagerFactory属性中。
在幕后,JdoTransactionManager和那个从JDO持久性管理器中检索到的事务对象一起工作,在事务成功结束后调用commit(),在事务失败后调用rollback()。
<bean id="transactionManager" class="org.springframework.orm.jdo.JdoTransactionManager"><property name="persistenceManagerFactory" ref="persistenceManagerFactory"></property></bean>
- [Spring]Spring中的事务管理
- Spring6:Spring中的事务管理
- Spring中的事务管理
- spring中的事务管理
- Spring中的事务管理方式
- Spring 中的事务管理
- spring框架中的事务管理
- Spring中的事务管理
- Spring中的事务管理
- Spring 中的事务管理
- Spring中的事务管理方式
- Spring中的事务管理
- Spring中的事务管理
- Spring 中的事务管理
- Spring 中的事务管理
- Spring Boot中的事务管理
- Spring Boot中的事务管理
- Spring Boot中的事务管理
- ASP.NET 常用功能收藏
- Eclipse中如何集成JBOSS7.0版本
- 私有继承和聚合的分析比较
- 安装Ubuntu,安装配置软件视频教程 (把学C++和CodeBlocks,玩Ubuntu的积累来个总结)
- iphone开发资源汇总
- Spring中的事务管理
- c#中的随机数
- PHP-MVC机制的实现
- 关于hadoop循环获取路径以及获得分片的源代码
- vc开发相关工具收集
- flex中datagrid当字体超出长度时显示标题完整字体
- Linux tail 命令详解
- 卸载ubuntu出现的问题
- 需求分析和进度预测特别重要—以前学校里没见过的东西