网上银行系统
问题描述 问题的提出及描述 某建行支行需要一个网上银行系统,实现人们平常生活中的存款、取款、查询余额,退出等核心业务,类似于银行的ATM机 。
问题分析-1 任务需求 开发一个类似于ATM机的网上银行系统; 系统描述 该系统是一个B/S结构的系统; 该系统采用J2EE技术架构(Struts+EJB) 该系统数据库为Oracle9i 该系统的应用服务器为Weblogic8.1
问题分析-2 用例分析
问题分析-3 类图(以实现登陆用例的类图为例)
问题分析-4 时序图分析(以实现登陆系统用例为例)
难点解析-1 技术架构 Browser Server DB WEB Layer (Struts) Web Action Form JSP EJB Layer DB Action Form JSP Session Bean Entity Bean
难点解析-2 Struts框架的使用
难点解析-3 EJB编程 环境的配置 EJB code 的编写 打包发布
阶段划分 第一阶段(10分钟):数据库设计及其实现 第二阶段(80分钟):实现登陆用例 第三阶段(70分钟):实现存款用例 第四阶段(70分钟):实现取款用例
第一阶段 第一阶段(10分钟):数据库设计及其实现 表 Account 要求学员自己动手编码,教师在编码的过程中解答学员提出的问题
阶段检查 针对第一阶段抽查学员的建库结果 教员给出点评
第一阶段标准代码演示 第一阶段数据库结果展示 在SqlPlus或Oracle OEM中展示
第二阶段 第二阶段(80分钟):实现登陆用例 要求学员自己动手编码,在编码的过程中解答学员提出的问题 编写JSP、Form和Action; 编写Session Bean 和 Entity Bean; 调试程序 要求学员自己动手编码,在编码的过程中解答学员提出的问题
阶段检查 针对第二阶段抽查学员的编码结果 教员给出点评
第二阶段标准代码演示 演示登陆系统的功能,并在JBuilder2005中演示相关代码 在JBuilder2005中演示代码 …… Context initial = new InitialContext(); Object obj = initial.lookup("Logon"); LogonHome home = (LogonHome) PortableRemoteObject.narrow(obj, LogonHome.class); Logon logon = home.create(); result = logon.checkAccount(accoutNo, password); 在JBuilder2005中演示代码
第三阶段 第三阶段(70分钟):实现存款用例 要求学员自己动手编码,在编码的过程中解答学员提出的问题 编写JSP、Form和Action; 编写Session Bean 和 Entity Bean; 调试程序 要求学员自己动手编码,在编码的过程中解答学员提出的问题
阶段检查 针对第三阶段抽查学员的编码结果 教员给出点评
第三阶段标准代码演示 演示存款的功能,并在JBuilder2005中演示相关代码 在JBuilder2005中演示代码 …… if (money == null || money.trim().equals("")) { resultStr = "请输入存款金额!"; servletRequest.setAttribute("result", resultStr); return new ActionForward(actionMapping.getInput()); } else { int result = saveMoney(accoutNo, money); resultStr = (result != 1) ? "存款失败" : "存款成功"; } return actionMapping.findForward("main"); 在JBuilder2005中演示代码
第四阶段 第四阶段(60分钟):实现取款用例 要求学员自己动手编码,在编码的过程中解答学员提出的问题 编写JSP、Form和Action; 编写Session Bean 和 Entity Bean; 调试程序 要求学员自己动手编码,在编码的过程中解答学员提出的问题
阶段检查 针对第二阶段抽查学员的编码结果 教员给出点评
第四阶段标准代码演示 演示取款的功能,主要是观察数据库数据的变化 在JBuilder2005中演示代码 BigDecimal moneyBDC = new BigDecimal(money); …… AccountHome accountrHome = (AccountHome) context.lookup("Account"); Account account = accountrHome.findByPrimaryKey(accountNo); if (account != null) { if (account.getBalance().compareTo(moneyBDC) < 0) { result = -1; } else { account.setBalance(account.getBalance().subtract(moneyBDC)); result = 1; } 在JBuilder2005中演示代码
总结 运用Struts+EJB 的开发应用程序。 通过本案例,巩固了前面所学习知识: 基于Struts的应用程序; EJB开发技术; 面向对象的思想和UML; Weblogic的使用 Oracle的使用