欢迎来到天天文库
浏览记录
ID:41008965
大小:901.00 KB
页数:27页
时间:2019-08-13
《J2EE在线的银行应用程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、J2EE在线的银行应用程序我们讨论DUKE的银行应用程序,一个在线的银行应用程序.他有两个客户端,一个让管理员管理顾客和账号的j2ee应用程序客户端,一个让顾客访问账号历史和执行的交易信息的web客户端。顾客通过实体bean访问存储在数据库中的顾客,账号,和交易信息。DUKE银行应用程序向我们展示了我们在这本书中介绍的所有的组件-EJB,j2ee应用程序客户端和web组件是如何在一起协同工作以组成一个简单但又功能丰富的应用程序的。下面的图片是一个在高层次上的组件交互图。在这一章我们将详细讨论他们的类型,包括他们是如何编译,部署,和运行的。图
2、17-1duke银行应用程序EJB下图展示了客户端,EJB和数据库表之间的访问路径。正如下图所示,客户端应用程序仅仅只访问会话BEAN,在EJB之间的关系中,会话BEAN是实体BEAN的客户端。在应用程序的末端,实体BEAN通过访问数据库中的表存储实体的状态。这些EJB的原代码位于j2eetutorial/bank/src/com/sun/ebank/ejb子目录。图:17-2duke银行应用程序中的EJB会话BEANDUKE的应用程序有三个会话BEAN,AccountControllerEJB,CustomerControllerEJB和
3、TxControllerEJB(Tx代表一个业务交易,比如银行转账)这些会话BEAN向客户端提供了一个应用程序业务逻辑的视图。它们隐藏了服务器端执行业务逻辑,访问数据库,管理关系和检查错误的细节。AccountControllerEJBAccountControllerEJB的业务方法根据执行的任务可以分为几类:生成和删除实体BEAN,管理顾客和账号之间的关系,获得账号的信息。下面的两个方法生成和删除实体BEAN。lcreateAccountlremoveAccountAccountControllerEJB会话BEAN的这两个方法调用Ac
4、countEJB实体BEAN的create和remove方法。如果参数错误,createAccount和removeAccount方法将抛出应用程序级的异常。如果参数的类型不是Checking,Savings,Credit和MoneyMarket,createAccount方法将抛出IllegalAccountTypeException异常。createAccount方法也通过调用CustomerEJB实体BEAN的方法findByPrimaryKey来确定特定的顾客是否存在,如果顾客不存在,createAccount方法抛出Custome
5、rNotFoundException异常。下面的方法管理账号和顾客之间的关系。addCustomerToAccountremoveCustomerFromAccountAccountEJB和CustomerEJB实体BEAN之间有着多对多的关系。一个账号可以被多个顾客使用,一个顾客也可以有多个账号。因为实体BEAN使用BMP(Bean管理持久性关系),所以有多种方法处理这种关系。在Duke的银行应用程序中,AccountControllerEJB会话BEAN的使用addCustomerToAccount和removeCustomerFrom
6、Account方法管理账号和客户之间的关系。例如addCustomerToAccount方法开始先确定一个顾客是否存在。为了实现这种多对多的关系,addCustomerToAccount方法向数据库表customer_account_xref插入一行,在这个交叉引用的表中,每一行都包括相关实体的customerId和accountId字段。为了删除这种关系,removeCustomerFromAccount方法从customer_account_xref表中删除一行。下面的方法得到有关账号的信息。lgetAccountsOfCustomer
7、lgetDetailsAccountControllerEJB会话BEAN有两个get方法,getAccountsOfCustomer方法通过调用AccountEJB实体BEAN的findByCustomer方法返回一个给定顾客的所有账号,为了取代对AccountEJB的每一个变量(即与数据库表相对应的字段)都执行get方法,AccountControllerEJB会话BEAN通过一个getDetails方法返回一个封装了AccountEJB实体BEAN状态的对象(AccountDetails对象)。CustomerControllerEJ
8、B因为AccountControllerEJB会话BEAN管理顾客和账户之间的关系,所以CustomerControllerEJB会话BEAN相对简单一些。客户端通过调用Cust
此文档下载收益归作者所有