欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    毕业论文基于JAVA技术的个人网上银行系统的设计与实现(19页).doc

    • 资源ID:38811500       资源大小:248.50KB        全文页数:19页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    毕业论文基于JAVA技术的个人网上银行系统的设计与实现(19页).doc

    -毕业论文基于JAVA技术的个人网上银行系统的设计与实现-第 19 页毕业设计(论文)题目:基于JAVA技术的个人网上银行系统的设计与实现姓 名 曹圣驹 准考证号 018909223032 专 业 计算机网络 专科学校 正德职业技术学院 指导教师 李晓明 南京航空航天大学2011年 5月目录摘要3第一章 绪论41.1论文背景41.1.1银行营业厅存在的问题41.1.2网上银行的诸多优点41.2论文的内容和意义41.2.1 论文的内容41.2.2 论文的意义5第二章 系统的开发技术及主要架构62.1 J2EE概述62.1.1J2EE提出的背景72.1.2 J2EE的优越性82.2 SSH(Struts+Spring+Hibernate)框架概述82.2.1表示层框架Struts82.2.2 业务逻辑层框架Spring102.2.3数据持久层框架Hibernate11第三章系统的需求分析123.1 需求分析123.1.1 客户注册及登陆功能分析123.1.2帐户交易业务功能分析133.1.3银行管理员功能分析133.2 系统流程分析143.2.1网上银行操作流程14第四章 网上银行系统的实现154.1 系统数据库表的基本设计154.1.1 客户信息表(tb_customer)154.1.2 交易信息表(tb_trade)164.2 银行系统功能模块的实现164.2.1 Hibernate的部分配置文件-hibernate.cfg.xml164.2.2 Struts配置文件- struts-config.xml174.2.3 数据库的链接194.3 各项功能的实现204.3.1 新用户注册204.3.2 登录214.3.3 查询224.3.4 转账224.3.5 取款23结束语26参考文献27摘要去过银行的人多多少少会遇到这样的情况,为了办理一项业务,为了汇一笔钱,为了交一下费,就得排队等候好几个小时;有时也会因为天气不好,出门不方便;也许是住地比较偏僻,离银行有相当远;诸多的不方便给我们带来了很大的困扰。如今,随着计算机和网络通信技术的发展,人类社会的信息传播方式已由原先的矩阵传播逐步转变为网络式、分布式传播,人类社会进入了以网络应用为核心的数字化革命时代,金融业不可避免地受到了计算机网络技术的深刻影响,由此形成了全新的经营模式网上金融。最具代表性的可能就是网上银行了,网上银行是通过互联网向公众提供各种金融服务的电子银行系统,它使客户可以不受时空限制,足不出户便可以通过网络进行申请、查询、管理、转账等银行业务,完全不用担心刮风下雨的天气,也不用考虑银行是否下班,更不需要担心要排队了,只要拥有一台可以上网的计算机,所有业务便可以实现轻松办理。本系统主要采用的是SSH(Struts+Spring+Hibernate)框架,本系统全部功能是为开户客户提供存款、取款、转帐、查询、修改用户帐户信息、查看个人业务记录、新帐户办理等服务,银行管理员登录系统后可以执行查询帐户信息、冻结帐户、撤消冻结等操作。关键词:J2EE,MVC,Struts,Spring,Hibernate第一章 绪论1.1 论文背景1.1.1 银行营业厅存在的问题现如今祖国经济发展迅速,人均生活水平在不断的提高,多多少少到会需要到银行办理各项业务或者缴费。天不如人愿的是,有时为了办理一项业务,为了汇一笔钱,为了交一下费,就得排队等候好几个小时;有时也会因为天气不好,出门不方便;也许是住地比较偏僻,离银行有相当远;诸多的不方便给我们带来了很大的困扰。1.1.2 网上银行的诸多优点随着计算机和网络通信技术的发展,人类社会的信息传播方式已由原先的矩阵传播逐步转变为网络式、分布式传播,人类社会进入了以网络应用为核心的数字化革命时代,金融业不可避免地受到了计算机网络技术的深刻影响,由此形成了全新的经营模式网上金融。最具代表性的可能就是网上银行了,网上银行是通过互联网向公众提供各种金融服务的电子银行系统,它使客户可以不受时空限制,大大的节省了时间,使办理各项业务变得省时、省力、便捷,能达到事半功倍的效果。1.2 论文的内容和意义1.2.1 论文的内容1)介绍本项目的开发环境和使用技术2)阐述整个系统的系统结构以及工作原理3)介绍网上银行的现状4)建立完整的网上银行的数据关系1.2.2 论文的意义弥补现今的银行营业厅的诸多不足,更大的方便了广大人民群众的衣食住行。第二章 系统的开发技术及主要架构2.1 J2EE概述J2EE是一套全然不同于传统应用开发的技术架构,包含许多组件,主要可简化且规范应用系统的开发与部署,进而提高可移植性、安全与再用价值。J2EE是一种利用Java 2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如"编写一次、随处运行"的特性、方便存取数据库的JDBC API、CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对 EJB(Enterprise JavaBeans)、Java Servlets API、JSP(Java Server Pages)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持Enterprise JavaBeans,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。这种基于组件,具有平台无关性的J2EE 结构使得J2EE 程序的编写十分简单,因为业务逻辑被封装成可复用的组件,并且J2EE 服务器以容器的形式为所有的组件类型提供后台服务. 因为你不用自己开发这种服务, 所以你可以集中精力解决手头的业务问题。(图1)注:中间件的解释 中间件处在操作系统和更高一级应用程序之间。它充当的功能是:将应用程序运行环境与操作系统隔离,从而实现应用程序开发者不必为更多系统问题忧虑,而直接关注该应用程序在解决问题上的能力 。容器和服务容器设置定制了J2EE服务器所提供得内在支持,包括安全,事务管理,JNDI(Java Naming and Directory Interface)寻址,远程连接等服务。2.1.1 J2EE提出的背景1、 企业级应用框架的需求在许多企业级应用中,例如数据库连接、邮件服务、事务处理等都是一些通用企业需求模块,这些模块如果每次再开发中都由开发人员来完成的话,将会造成开发周期长和代码可靠性差等问题。于是许多大公司开发了自己的通用模块服务。这些服务性的软件系列统称为中间件。2、 为了通用必须要提出规范,不然无法达到通用在上面的需求基础之上,许多公司都开发了自己的中间件,但其与用户的沟通都各有不同,从而导致用户无法将各个公司不同的中间件组装在一块为自己服务。从而产生瓶颈。于是提出标准的概念。其实J2EE就是基于JAVA技术的一系列标准。2.1.2 J2EE的优越性1、 基于JAVA 技术,平台无关性表现突出2、 开放的标准,许多大型公司已经实现了对该规范支持的应用服务器。如BEA,IBM,ORACLE等。3、 提供相当专业的通用软件服务。4、 提供了一个优秀的企业级应用程序框架,对快速高质量开发打下基础2.2 SSH(Struts+Spring+Hibernate)框架概述针对当前Web应用程序开发面临的问题,结合目前比较流行的开源框架Spring、Struts和Hibernate,提出了一种开发J2EE Web应用的轻量级解决方案,以帮助开发人员在短期内搭建结构清晰、可复用性好、维护方便的Web应用程序。并且,通过案例具体说明了如何将这一方案应用到实际项目中。2.2.1表示层框架StrutsStruts是一个在JSP Model2基础上实现的MVC框架,主要分为模型(Model)、视图(Viewer)和控制器(Controller)三部分,其主要的设计理念是通过控制器将表现逻辑和业务逻辑解耦,以提高系统的可维护性、可扩展性和可重用性。Struts框架的体系结构如图2所示。(图2)下面就图1所示的体系结构图分析Struts框架中的MVC组件。(1)视图:视图部分主要由JSP页面组成,其中没有流程逻辑、业务逻辑和模型信息,只有标记。Struts自身包含了一组标记库(TagLib),这也是Struts的精华之一,灵活运用它们可以简化JSP页面的代码,提高开发效率。(2)控制器:Struts中的Controller主要是其自身提供的ActionServlet。ActionServlet接收所有来自客户端的请求并根据配置文件(struts-config.xml)中的定义将控制转移到适当的Action对象。(3)模型:Struts没有定义具体Model层的实现,Model层通常是和业务逻辑紧密相关的,有持续化的要求。目前在商业领域和开源世界,都有一些优秀的工具可以为Model层的开发提供便利。Struts工作原理如下图:2.2.2 业务逻辑层框架SpringSpring是一个解决了许多J2EE开发中常见问题并能够替代EJB技术的强大的轻量级框架。这里所说的轻量级指的是Spring框架本身,而不是指Spring只能用于轻量级的应用开发。Spring的轻盈体现在其框架本身的基础结构以及对其他应用工具的支持和装配能力。与EJB这种庞然大物相比,Spring可使程序研发人员把各个技术层次之间的风险降低。Spring框架的核心是控制翻转IoC(Inversion of Control)/依赖注入DI(Dependence Injection)机制。IoC是指由容器中控制组件之间的关系(这里,容器是指为组件提供特定服务和技术支持的一个标准化的运行时的环境)而非传统实现中由程序代码直接操控,这种将控制权由程序代码到外部容器的转移,称为“翻转”。DI是对IoC更形象的解释,即由容器在运行期间动态地将依赖关系(如构造参数、构造对象或接口)注入到组件之中3。Spring采用设值注入(使用Setter方法实现依赖)和构造子注入(在构造方法中实现依赖)的机制,通过配置文件管理组建的协作对象,创建可以构造组件的IoC容器。这样,不需要编写工厂模式、单例模式或者其他构造的方法,就可以通过容器直接获取所需的业务组件。Spring框架的结构如图3所示。(图3)2.2.3数据持久层框架HibernateO/R mapping技术是为了解决关系型数据库和面向对象的程序设计之间不匹配的矛盾而产生的。Hibernate是目前最为流行的O/R mapping框架,它在关系型数据库和Java对象之间做了一个自动映射,使得程序员可以以非常简单的方式实现对数据库的操作。Hibernate通过对JDBC的封装,向程序员屏蔽了底层的数据库操作,使程序员专注于OO程序的开发,有助于提高开发效率。程序员访问数据库所需要做的就是为持久化对象编制xml映射文件。底层数据库的改变只需要简单地更改初始化配置文件(hibernate.cfg.xml或者hibernate.properties)即可,不会对应用程序产生影响。Hibernate有自己的面向对象的查询语言HQL,HQL功能强大,支持目前大部分主流的数据库,如Oracle、DB2、MySQL、Microsoft SQL Server等,是目前应用最广泛的O/R映射工具。Hibernate为快速开发应用程序提供了底层的支持。第三章 系统的需求分析3.1 需求分析网上银行系统需要达到以下目标:1) l客户开设新帐户。2) l客户登陆系统后可以进行存款、取款、转帐、查询已有的业务操作记录等业务操作。3) l客户登陆系统后可以修改帐户信息、注销帐户等操作。其中注销帐户为逻辑删除,非物理删除。4) l银行管理人员登陆系统后可以查询帐户信息、冻结帐户、撤消冻结。其中帐户冻结后只能进行查询和存款,不能进行其他修改性操作,也不能注销帐户。5) l对操作的成功或失败要给出信息提示。3.1.1 客户注册及登陆功能分析客户使用网上银行是应该有注册和登录功能,登录成功后方可进行其他业务的查询和办理。如下图:客户注册及登录客户注册新帐户客户登录客户注册后修改信息息3.1.2帐户交易业务功能分析网上银行的交易应该有存款、取款、转账、查询交易记录等功能。如下图:帐户交易业务查询交易记录 转帐取款存款3.1.3银行管理员功能分析银行管理员需要拥有可以查询用户交易账单的功能,以及冻结账户和解冻账户的功能如下图:银行管理员登录查询帐户信息冻结帐户解冻帐户存款取款解除冻结新用户已注册用户已注册未登录用户注册登录普通用户管理员冻结账户查询账户信息办理业务转账查询余额3.2 系统流程分析3.2.1网上银行操作流程网上银行的操作流程大致如下图所示:第四章 网上银行系统的实现4.1 系统数据库表的基本设计在建设网站系统之前,我们必须对系统所用到的数据进行大致的分类和具体的结构设计,既要做到清晰明了,又要能适应系统各项功能的调用,而不至于产生结构上的逻辑混乱,保证关键数据在意外情况下不会被破坏,可以说数据库是系统的重中之重。数据库设计要遵循一些规则,一个好的数据库满足一些严格的约束和要求。尽量分离各实体对应的表,一个实体对应一个表,搞清楚该实体有哪些属性,对应有些什么字段,以及各实体之间有何种联系。实体、属性与联系是进行概念设计时要考虑的三个元素,也是一个好的数据库设计的核心。经过分析,需要建立以下各表:4.1.1 客户信息表(tb_customer)字段字段名类型长度索引是否为空accountID账号varchar20主键不为空userName用户名varchar30不为空sex性别varchar5不为空loginPwd登录密码varchar6不为空cardID卡号varchar18不为空openDate开号日期varchar25不为空balance账号余额doublestatus状态intuserType用户类型int4.1.2 交易信息表(tb_trade)字段字段名类型长度索引是否为空tradeID交易编号varchar15主键不为空firstAccountID账号甲varchar20不为空secondAccountID账号乙varchar20tradeType交易类型varchar10money交易金额doubletradeDate交易日期varchar304.2 银行系统功能模块的实现4.2.1 Hibernate的部分配置文件-hibernate.cfg.xml主要代码如下:<hibernate-configuration><session-factory><property name="show_sql">true</property><property name="format_sql">true</property><property name="hbm2ddl.auto">update</property>name="connection.driver_class">com.mysql.jdbc.Driver</property><property name="connection.url">jdbc:mysql:/localhost:3306/bankSystem</property><property name="connection.username">root</property><property name="connection.password">root</property><mapping resource="com/zdxy/bankSystem/entity/Customer.hbm.xml"/> 中间省略若干代码</session-factory></hibernate-configuration重要名词解释:show_sql是在进行CRUD操作时控制台输出该HQL语句format_sql是格式化HQL语句hbm2ddl.auto自动建表语句connection.url连接数据库URLconnection.username连接数据库用户名connection.password连接数据库密码4.2.2 Struts配置文件- struts-config.xmlstruts-config.xml文件,是由ActionServlet读取的配置文件,它定义了所有关于Action、ActionForm、ActionForward等的详细信息。主要代码如下:<struts-config><form-beans><form-bean name="customerRegisterForm" type="com.zdxy.bankSystem.actionForm.RegisterCustomerActionForm"/></form-beans><action-mappings><action path="/login" name="loginForm" type="com.zdxy.bankSystem.action.CustomerRegisterAction" scope="request" <forward name="success" path="/mainService.jsp" /> <forward name="fail" path="/login.jsp"/></action>代码省略主要部分解释:其中<form-beans> 表情中Ø name属性是给此ActionForm一个标识名称;Ø type属性指定了此ActionForm是哪个类,必须是全路径的类名。我们在struts-config.xml文件中,紧接着<form-beans>标签的下面,添加对LoginAction的配置。<action>标签可以配置的重要属性包括:Ø path-从页面上通过一个什么样的URL路径来访问Action(不包含.do);Ø type 访问这个URL的时候,调用哪个Action类,这是Action的全路径类名Ø name 这个属性用来标识哪个ActionForm将被创建,并将提交的表单组件给它;Ø scope FormBean的作用域范围,可以取值为session和request,一般取值都是request。此时LoginAction应用程序的流程如下图:4.2.3 数据库的链接在dbUtil包下面新建connectionFactory.java文件,其主要代码如下:public class ConnectionFactory private static Properties config=new Properties();staticInputStream in=null;try ClassLoader loader=ConnectionFactory.class.getClassLoader();in=loader.getResourceAsStream("db.properties");/读取db.properties文件中的配置数据config.load(in); catch (IOException e) e.printStackTrace();finallytry in.close();/ catch (IOException e) e.printStackTrace();建立一个链接工厂的类,方便了项目中代码的对数据库的调用。4.3 各项功能的实现4.3.1 新用户注册主要代码如下:RegisterCustomerActionForm customerForm=(RegisterCustomerActionForm)form;Customer customer=null;customer=customerForm.createCustomer();CustomerRegisterService sc=new CustomerRegisterService();if(sc.save(customer)request.getSession().setAttribute("customer", customer);return mapping.findForward("success");elsereturn mapping.findForward("fail");4.3.2 登录主要代码如下: HttpSession session=request.getSession(); if(request.getAttribute("loginFail")!=null) request.removeAttribute("loginFail");/对用户进行判断 if(user!=null) session.setAttribute("customer", user); return mapping.findForward("mainService"); else /用户登录失败则给出错误提示 String error="帐户号码或密码错误,请重新登录!" request.setAttribute("loginFail", error); return mapping.findForward("loginError");4.3.3 查询查询这显示数据库中该用户的信息,如下图:4.3.4 转账主要代码如下:if(action.equals("zhuanzhang")double money=Double.parseDouble(request.getParameter("money");String accountID2=request.getParameter("accountID2");if(c.getBalance()-money<0)/转账金额比余额小request.setAttribute("notmoney", "余额不足");return mapping.findForward("zhuanzhangFail");Customer c2=TradeService.find(accountID2);if(c2=null)/request.setAttribute("zhuanzhangError", "转帐帐号错误或不存在");return mapping.findForward("zhuanzhangFail");elseTradeService.zhuanzhang(c.getAccountID(),c2.getAccountID(), money);/转账完毕改变余额c.setBalance(c.getBalance()-money);session.setAttribute("customer", c);4.3.5 取款主要代码如下:if(action.equals("qukuan")double money=Double.parseDouble(request.getParameter("money");if(c.getBalance()-money<0)request.setAttribute("notmoney", "余额不足");return mapping.findForward("notmoney");TradeService.qukuan(c.getAccountID(), money);c.setBalance(c.getBalance()-money);session.setAttribute("customer", c);4.3.6 修改账户信息主要代码如下:if(action.equals("modify")c.setUserName(request.getParameter("userName");c.setSex(request.getParameter("sex");c.setCardID(request.getParameter("cardID");c.setPhone(request.getParameter("phone");c.setAddress(request.getParameter("address");c.setLoginPwd(request.getParameter("loginPwd");session.setAttribute("customer", c);TradeService.modify(c);return mapping.findForward("success");结束语本项目主要采用了比较流行的SSH架构,需要注意的有系统数据准备、数据库的逻辑结构分析、各模块系统流程 各功能模块的关联和响应。网上银行系统具有如下几个优点:1.使用方便,维护简单用户在任何时间、任何地点,通过 IE 浏览器,键入网上银行主页地址,即可进入系统的登录页面。客户端不需安装应用软件,实现客户端零维护。方便快捷。2.良好的跨平台性系统采用了Java编程技术,由于Java的可移植性,所以,本系统可以在任何一个的平台上运行。3.易维护性该网上银行系统采用Spring-Struts-Hibernate集成框架,系统结构清晰,有很好的可扩展性和维护性。参考文献1) 柳永坡 刘雪梅 赵长海 编著 JSP应用开发技术M北京:人民邮电出版社2) 孙卫琴 编著 Java面向对象编程 电子工业出版社3) 孙卫琴 编著 精通Hibernate:Java对象持久化技术详解电子工业出版社4) 孙卫琴 编著 精通Struts:基于MVC的Java Web设计与开发电子工业出版社5) 李 刚 编著 疯狂Java讲义 电子工业出版社

    注意事项

    本文(毕业论文基于JAVA技术的个人网上银行系统的设计与实现(19页).doc)为本站会员(1595****071)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开