使用JOTM为Servlets增加事务支持(2)
2004-04-20 23:19
316 查看
应用程序设计:
数据层:
在数据层,我们需要两个不同的数据库,在每个数据库中都存在一张表。为了让例子更加真实,我们会使用两个不同的数据库,因为从不属于用户账户所在银行的ATM上取钱是确实可能出现的情况。(根据以下信息配置数据库)
banktest包括account表,表示用户账户信息。
atmtest包括atm表,表示ATM信息。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
逻辑层:
在逻辑层,我们有三个类访问资源并在资源上进行各种操作:
foo.BankAccount表示指定用户的银行账户并通过JDBC对数据库中的account表进行操作。
bar.ATM表示ATM并通过JDBC对atm表进行操作。
bar.CashDelivery使用上面两个类完成用户取钱的操作。
所有的逻辑都在CashDelivery.java类的deliverCash方法中完成。
[/code]
数据层:
在数据层,我们需要两个不同的数据库,在每个数据库中都存在一张表。为了让例子更加真实,我们会使用两个不同的数据库,因为从不属于用户账户所在银行的ATM上取钱是确实可能出现的情况。(根据以下信息配置数据库)
banktest包括account表,表示用户账户信息。
atmtest包括atm表,表示ATM信息。
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
逻辑层:
在逻辑层,我们有三个类访问资源并在资源上进行各种操作:
foo.BankAccount表示指定用户的银行账户并通过JDBC对数据库中的account表进行操作。
bar.ATM表示ATM并通过JDBC对atm表进行操作。
bar.CashDelivery使用上面两个类完成用户取钱的操作。
所有的逻辑都在CashDelivery.java类的deliverCash方法中完成。
javax.transaction.UserTransaction
接口被用来指定是否使用事务,所有在utx.begin()和utx.commit()(或者utx.rollback())之间的操作都会在一个事务中完成。这就保证了你的Web应用不会陷入上面的场景所讨论的痛苦之中。
感谢事务,让应用的逻辑变得如此简单,仅仅包括如下几步: 4000
1)
开始事务;
2)
与用户的银行联系,并从账户上支取相应的数额;
3)
告诉ATM提供现金;
4)
结束事务
a)
如果所有的事都成功完成,那么提交事务;
b)
否则,回滚事务
5)
将事务的结果向用户报告。如果事务成功完成,那么用户得到现金,并且账户上会扣除相应的数额。否则,什么事都不会发生。
示例一
:
CashDelivery.java
ctx.lookup("java:comp/UserTransaction");[code]
[/code]
相关文章推荐
- 使用JOTM为Servlets增加事务支持(1)
- 使用JOTM为Servlets增加事务支持(3)
- 使用JOTM为Servlets增加事务支持(4)
- 使用JOTM为Servlets增加事务支持(4)
- C#中增加SQLite事务操作支持与使用方法
- 使用JPA Annotation标注实体---5.8.1: 增加JPA Annotation支持
- 使用JOTM实现分布式事务管理(多数据源)
- 深入理解Spring Redis的使用 (二)、RedisTemplate事务支持、序列化
- 8 -- 深入使用Spring -- 6...2 Spring支持的事务策略
- 使用JOTM实现分布式事务管理(多数据源)
- AndroidInject项目使用动态代理增加对网络请求的支持
- 深入理解Spring Redis的使用 (二)、RedisTemplate事务支持、序列化
- Python中Mysqldb的使用以及事务的支持-pybatis首次露面-pybatis的准备阶段(十)
- Linux PHP增加JSON支持及如何使用JSON
- 使用JOTM实现分布式事务管理(多数据源)
- 使用spring声明式事务,spring使用AOP来支持声明式事务,会根据事务属性,自动在方法调用之前决定是否开启一个事务,并在方法执行之后决定事务提交或回滚事务。
- 为项目增加LOG4J2支持&LOG4J2使用如何增加LOG4J2中的几个必须要注意问题
- Spring中事务管理支持哪几种方式以及每种方式的具体使用方法
- Spring 事务操作(银行转账案例),使用spring 对jdbc的支持完成对数据库的操作
- Linux PHP增加JSON支持及如何使用JSON