记账系统毕业设计_第1页
记账系统毕业设计_第2页
记账系统毕业设计_第3页
记账系统毕业设计_第4页
记账系统毕业设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

...v.目录TOC\o"1-3"\h\u26572第一章概述2123871.1引言2248591.2记账系统研究内容简介2121341.3ECLIPSE概述3254401.4JAVA编程语言简介327222第二章需求分析4118942.1需求分析4209922.2功能需求5263232.2.1个人管理模块5318592.2.2收支分析模块520372.2.3资产管理模块5261742.3记账系统的性能需求522312第三章总体设计5303433.1记账系统的模型构造5168373.2记账系统的功能模块简介694493.3数据库设计7107713.3.1数据库设计7223373.3.2数据库构造设计8106第四章系统详细设计及实现8324564.1系统登录8128824.1.1注册新用户9305184.2用户管理模块1019694.2.1修改密码11327044.3收支录入模块1116004.3.1收支信息添加1295114.3.2收支分析报警模块13301824.4系统配置14279664.4.1Server.xml文件配置14134804.4.2ContextServer.xml文件配置15224074.5系统局部重要功能及其代码15162004.5.1连接池代码159178第五章测试16153195.1系统测试1659445.2性能测试16321865.3验收测试1630772第六章总结1730453致谢171942参考文献18...v.第一章概述1.1引言随着计算机网络的日益开展和广泛应用,以及数据库技术的应用,人们传统的一些方式发生了巨大的改变,银行的业务从单一的吸收存款,发放贷款,开展为综合财务业务。业务,拓宽经营范围。而近些年银行理财效劳开场像网络化转变。银行个人记账系统应运而生。银行个人理财就是银行管理自己的财富,是自己私有理财参谋,合理的规划自己的财务的盈亏,进而提高财富的效能的经济活动。理财也就是对资本金和负债资产的科学合理的运作。通俗的来说,理财就是赚钱、省钱、花钱之道。理财就是打理钱财。说起来理财是一件非常平凡的事情,但实际上却非常有学问。个人理财是一门新兴的实用科学,它是以经济学为指导〔追求极大化目标〕、以会计学为根底〔客观忠实记录〕、以财务学为手段〔方案与满足未来财务需求、维持资产负债平衡〕的边缘科学。既然个人理财是门科学,我们就必须以科学、理性的态度来对待它。只有这样,才能到达理财的目标。因为以往的理财方法比较单调和麻烦,所以本论文中的记账系统就是要建立一个综合的、系统的理财软件,进而开发出一个完整的方案和全权负责一项个人理财业务。作为计算机应用的一局部,使用计算机对个人财务信息进展管理,具有手工管理所无法比较的优点。例如:检索迅速、查找方便、可靠性高、存储量大、XX性好、寿命长、本钱低等。这些优点能够将您的资产就会一目了然,便于您对于所持有资产的分配管理。在面向对象编程技术中,Eclipse凭借着其强大的功能和快速开发的特点,应用越来越广泛。本文介绍了个人理财的概念及Eclipse的有关技术,并探讨了记账系统的设计思路和构成,然后详细分析了本子模块的实现过程,并给出了用Eclipse实现的关键代码。该记账系统能够完成数据的输入、修改、删除、查询与统计等根本功能,适用于现代普通个人的财务管理。顺应这种趋势,本次毕业设计主要是分析、设计和实现了记账系统,实现了个人理财中的用户管理、资产管理、债权债务管理、债券投资,股票投资等功能,能够实现网络化的个人理财管理。本文主要探讨个人资产债权债务模块的分析、设计和实现。1.2记账系统研究内容简介理财是一个范畴很广的概念。从理财的主体来说,个人、公司、政府部门至国家等都有理财活动,但本文所阐述的主要是个人通过银行理财。个人理财、个人理财实际上是同一个概念。在国外,普通叫个人理财〔可能与西方国家尊重个人自由、个体独立有关;或者是从理财中介的角度来说的,因为他们面对的是个人成员中的个体〕,在国内,我们主要叫个人理财比较适宜,因为中国是一个重视个人、家族观念比较重的国家,以个人为主体进展理财的活动更加普遍。所谓个人理财从概念上讲,就是学会有效、合理地处理和运用钱财,让自己的花费发挥最大的效用,以到达最大限度地满足日常生活需要的目的。简而言之,个人理财就是利用企业理财和金融的方法对个人经济〔主要指个人收入和支出〕进展方案和管理,增强个人经济实力,提高抗风险能力,增大个人效用。从广义的角度来讲,合理的个人理财也会节省社会资源,提高社会福利,促进社会的稳定开展。从技术的角度讲,个人理财就是利用开源节流的原那么,增加收入,节省支出,用最合理的方式来到达一个个人所希望到达的经济目标。这样的目标小到增添家电设备,外出旅游,大到买车、购屋、储藏子女的教育经费,直至安排退休后的晚年生活等等。个人理财就是管理自己的财富,进而提高财富的效能的经济活动。理财也就是对资本金和负债资产的科学合理的运作。通俗的来说,理财就是赚钱、省钱、花钱之道。理财就是打理钱财。1.3ECLIPSE概述Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组效劳,用于通过插件组件构建开发环境。幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具〔JavaDevelopmentTools,JDT〕。虽然大多数用户很乐于将Eclipse当作JavaIDE来使用,但Eclipse的目标不仅限于此。Eclipse还包括插件开发环境〔Plug-inDevelopmentEnvironment,PDE〕,这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语言开发的,但它的用途并不限于Java语言;例如,支持诸如C/C++、COBOL和Eiffel等编程语言的插件已经可用,或预计会推出。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的根底,比方内容管理系统。基于Eclipse的应用程序的突出例子是IBM的WebSphereStudioWorkbench,它构成了IBMJava开发工具系列的根底。例如,WebSphereStudioApplicationDeveloper添加了对JSP、servlet、E、XML、Web效劳和数据库访问的支持。2.2SQLSERVER数据库简介目前市场上数据库的主流厂商及产品有IBMDB2、MicrosoftSQLSERVER2000、ORACLE9i、Sybase。本系统采用SQLServer2000数据库进展数据管理。SQLServer作为微软在Windows系列平台上开发的数据库,一经推出就以其易用性得到了很多用户的青睐。MicrosoftWindowsServer2000是最新的、功能强大的、面向商业用户的操作系统,它的特点是易于使用,具有灵活性、可靠性的优点。它具有学习操作简单,兼容性良好,适用于电子商务建立,增加了数据仓库的特性,增强了建立在线商务方面的功能等优点。区别于FoxPro、Access小型数据库,SQLServer是一个功能完备的数据库管理系统。SQLServer的事务处理量大,响应速度快,并能为数百或更多用户维持这种高性能。SQLServer2000也是当今网络编程中使用的比较多的一个数据库系统,java是目前最流行的编程语言,在编程中涉及的比较多也比较重要的就是数据库问题,java自身提供了对各类主流数据库系统的支持,通过java.sql库,提供了统一的接口,使得可以在java环境下不必对程序作大规模的修改,只要更改相应的驱动程序,即可实现对各类数据库的操作,从而提高软件的生存周期和降低软件的开发本钱和维护费用。所以本系统采用SQLServer2000数据库进展开发。1.4JAVA编程语言简介Java是一种语法简洁、清晰的语言,它的程序运行需要一个解释器,也就是所谓的“虚拟机〞。虚拟机以某种高速算法解释执行Java的面向对象语言代码。Java是基于开发的,主要分为客户端和效劳器端两大类型。Java客户端软件包括Applet应用小程序,传统的客户端图形界面程序、各类加点设备的客户端应用程序。效劳器端软件那么包括利用Socket套接字或使用封装了Socket功能函数的Java高级网络流类编写的Server并发程序、Servlet程序、JSP网页程序和效劳器端的E组件等。根据Sun的Java语言白皮书中的归纳和总结,简单地说,Java语言有如下特点:1.简单〔Simple〕。程序较小,编写容易,能够在小型机器上执行,根本的解释器约为40KB,假设加上根本的程序库,约为215KB。2.面向对象〔Object-Oriented〕。一个对象的状态只由对象自己可知的变量定义。Java把这些变量称为数据域或者成员变量。数据域对对象来说是私有的,除非显示地使用关键字来定义它们的作用域,使它们对其他类可见。一个对象的行为是由它上面的操作定义的。在Java中,这些操作被叫做方法。方法可以改变一个对象的状态,创立新对象,实现实用的功能等。3.分布式〔Distributed〕。Java有一个庞大的程序库,且容易地与HTTP和FTP等TCP/IP通信协议相配合。4.强健性〔Robust〕。有Java所编写的程序,在多数情况下执行稳定。Java与C/C++最大不同是Java通过一个指针模型来排除内存被覆盖和毁损数据的可能性。5.平安性〔Secure〕。Java是被设计用于网络及分布式的环境中,Java拥有数个阶层的互锁保护措施,能有效地防止病毒的侵入和破坏行为的发生。6.构造中立〔ArchitectureNeutral〕。Java的编译器产生一种构造中立的目标文件格式,这使得编译码得以在很多种处理器中执行。7.解释执行〔Interpreted〕。Java解释器能直接在任何机器上执行Java位元码,这对于缩短程序的开发过程,有很大的帮助。8.高性能〔HighPerformance〕。Java位元码可迅速地能被转换成机器码,从位元码转换到机器码的性能与C和C++几乎没有分别。9.多线程的〔Multithreaded〕。Java语言具有多线程的功能,这对于交互回应能力及即时执行行为是有帮助的。10.动态性〔Dynamic〕。Java比C或C++语言更具有动态性,更能适应时刻在变的环境,Java不会因程序库的更新而必须重新编译程序。第二章需求分析2.1需求分析生命周期是指软件开发全部过程、活动和任务的构造框架。软件开发包括需求、设计、编码和测试等阶段,有时也包括维护阶段。好的软件必须要有一个合理,科学的需求分析。有人经统计发现,在不成功的软件工程中有一半左右是由于需求分析不周造成的,可见把建立完善的需求分析作为第一条根本原理是吸取了前人的教训而提出来的。2.2功能需求2.2.1个人管理模块用户管理模块是对用户进展管理的,主要实现的功能有用户的注册,用户的登陆,用户信息的更新和用户密码修改等功能。2.2.2收支分析模块收支分析主要是对个人的收入和支出的一种合理管理,另外提供了理财报警功能,如果支出大于收入那么系统将会给用户警报。2.2.3资产管理模块资产管理模块主要是对个人买入和卖出个人资产的一种管理。总体上来说就是对现金的支出和收入进展管理,让用户对自己的资产能够一目了然,也能够更好的方案个人的开支。2.3记账系统的性能需求该系统在性能功能上应到达如下需求:◆操作简单、界面友好:录入数据简单易操作,主要实现的个人理财的收支分析,资产管理,债券管理,股票投资,保险投入。收支分析主要是为了给用户提供一个平衡收支的一个平台,如果收支失衡,那么系统会提示用户合理理财;债券管理主要是对个人债券信息进展录入,系统会根据你债券的情况买入价格和收益率计算出盈利金额;资产管理主要是对用户的买入和卖出的资产进展整合分析,最后计算出资产的合计金额;股票投资主要是对个人买入股票的价格和数量以及卖出的价格进展计算,最好得出盈利金额;保险投入主要是对个人保险信息的一个记录。◆即时可见:对个人理财信息的处理〔包括录入、修改、删除〕将立即在系统界面显示出来,到达“即时发布、即时见效〞的功能;◆系统运行应该快速、稳定、高效和可靠;◆在构造上应具有很好的可扩展性,便于将来的第三章总体设计3.1记账系统的模型构造该系统的模型构造如图3-1所示:该系统构造分为三个逻辑层:三层架构:模型层主要是为了联接显示层和业务层,本系统遵循MVC三层架构,模型层起到一个传递数据和存储数据的作用,而客户端浏览器相当于显示层,主要是为了给用户展现数据,而业务层是对用户的需求的一种动作执行。3.2记账系统的功能模块简介图3-2列出系统的功能模块:图3-2系统模块工作流程为:翻开该系统,用户注册个人XX,根据个人XX登录系统,每个人登录系统后只可以对个人理财信息进展操作,本系统为单机版记账系统,即用户注册即为系统管理员,用户可以任意对自己的理财信息进展增加,修改和删除。并且可以对个人密码进展修改。收支分析模块主要是对用户收支情况的分析,用户可以录入自己的收支信息,并且可以对自己的信息进展修改和删除操作,用户收支情况是系统自动计算得出的,用户,如果用户的支出大于收入,那么点击收支分析那么会出现系统警报;债券管理主要是用户对个人债券信息的录入,如果需要变动那么可以对债券信息进展修改,并且只要填写用户债券数和盈利率就可以得出债券的盈利金额。资产管理模块:资产管理模块主要是对个人买入和卖出个人资产的一种管理。总体上来说就是对现金的支出和收入进展管理,让用户对自己的资产能够一目了然,也能够更好的方案个人的开支;股票管理模块:股票管理模块主要是为了能够帮助个人更好的管理股票信息的模块,并且可以计算出股票的盈利情况;保险投入模块:保险投入模块主要是记录个人投保信息。整个记账系统开发的总目标是让用户可以轻易的对个人收入与支出进展管理。可以对自己的金钱进展大胆的规划,对自己应该做出怎样的投资也不用在头疼,通过该软件,用户可以在进展参考后较为轻易的做出决定。该系统运用简单,操作方便,可以使用户节约记账的时间,克制纸X不容易保存的缺点。可以通过资产管理模块,实现用户对个人资产的记录、统计、规划。可以建立各种账户类型,以便管理各种账户的财务状况。对资产,股票,保险的根本信息存入数据库,可以进展检索。有方便的查询方法,如:日期,状态等信息进展检索。提供较为完善的过失控制与友好的用户界面,尽量防止误操作。3.3数据库设计数据库的设计是MIS系统的核心局部,设计数据库,首先要进展需求分析,然后进展数据库的概念构造设计、逻辑构造设计、数据库构造实现等步骤。本套记账系统采用的MicrosoftSQLServer2000作为访问数据库的效劳器,用它来对数据进展存储,在数据库应用系统的开发过程中,数据库的构造设计是一个非常重要的问题。我们在这里所说的数据库构造设计是指数据库中各个表构造的设计,包括信息保存在哪个表格中,各个表的构造如何以及各个表之间的关系。数据库构造的好坏将直接对应用系统的效率以及实现的效果产生影响,好的数据库构造设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度,简化基于此数据库的应用程序的实现等等。3.3.1数据库设计数据库逻辑设计分为三个阶段,分别是:收集和分析用户要求、建立E-R模型和数据库模式设计。数据库逻辑设计中的第一阶段收集和分析用户需求是按以下四步进展的:分析用户活动,确定系统范围,分析用户活动所涉及的数据和分析系统数据。逻辑设计第二阶段建立E-R模型分两步,首先应进展局部E-R模型设计,然后进展总体E-R模型的设计。逻辑设计第三阶段在数据库模式设计阶段分两步进展,第一步初步设计:把E-R图转换为关系模型,第二步优化设计:对模式进展调整和改善。我们所要进展研究的是逻辑设计的第三步即将E-R图像关系模型转化。实体转换出的关系模式:账户表{账户号,账户名称,,,地址,密码}1:n联系转换出的关系模式:不转换为表,而将1端实体的主键放到n端的实体作为n端实体的外键。3.3.2数据库构造设计数据库物理设计包括:选择存储构造、确定存取方法、选择存取路径、确定数据的存放位置。主要解决选择文件存储构造和确定文件存取方法的问题。在数据库中访问数据的路径主要表现为如何建立索引。如要直接定位到所要查找的记录,应采用索引方法存取方法〔索引表〕。顺序表只能从起点进去向后一个个访问记录。数据库的物理实现取决于特定的DBMS,在规划存储构造时主要应考虑存取时间和存储空间,这两者通常是互相矛盾的,要根据实际情况决定。索引并不是越多越好。虽然索引能提高查询效率,但由于是对数据表的映射,所以进展DML操作〔增、删、改〕时效率就会降低。经常查询的字段应该建索引,数据量庞大,查询的结果记录很少也需要建索引。在上面的实体以及实体之间关系模式的根底上,形成数据库中的表以及各表之间的关系。通过合理规划,需要设计7个数据库表来保存需要更新的数据:账户表(表3-1)、债券记录表〔表3-2〕、股票记录表〔表3-3〕、社会保险表〔表3-5〕、商业保险表〔表3-6〕。其构造如下:表3-1:账户表〔Account〕字段名说明类型长度可否为空主键user_id账户号int4否是user_name账户名称varchar30是Password密码varchar30是real_name真实XXvarchar30是Emailvarchar30是Address地址varchar60是Phonevarchar30是第四章系统详细设计及实现4.1系统登录登录页面:主要功能是用户利用用户名和密码登录,并且可以注册新用户。已存在用户可直接登录。新用户需点击“注册〞进展注册账号。点击注册后,页面跳转到“web/enterAddUserAction.do〞。如图4-1所示:关键代码:publicclassLogoutActionextendsBaseAction{publicActionForwardexecute(ActionMappingactionMapping, ActionFormactionForm,HttpServletRequestrequest, HttpServletResponseresponse){ HttpSessionsession=request.getSession(); session.invalidate();returnactionMapping.findForward("success");图4-1登录页面截图4.1.1注册新用户提交用户名密码〔英文数字支持〕,填写真实XX,,地址,〔可以为空值〕。点击提交,可以注册新账户。点击后退可以返回登录界面。如图4-1.1所示:图4-1.1新用户注册截图系统登录成功页面:系统登录成功后可以看到系统的所有功能菜单以及欢送语句,在此页面可使用系统功能:个人管理、收支分析、资产管理债券投资、股票投资、保险投入。点击功能“button"即可触发功能,跳转到功能页面如图4-2所示:关键代码:publicclassEnterLoginActionextendsBaseAction{publicActionForwardexecute(ActionMappingactionMapping,ActionFormactionForm,HttpServletRequestrequest,HttpServletResponseresponse){UserFormuserForm=(UserForm)actionForm;returnactionMapping.findForward("success");图4-2登录成功页面截图4.2用户管理模块用户登录后可以修改个人信息、用户名、、地址、。填写新的信息后,点击修改,即可完成修改个人信息的操作。点击“后退〞取消修改。如图4-2.1所示:关键代码:publicclassEnterSysAdminActionextendsBaseAction{publicActionForwardexecute(ActionMappingactionMapping, ActionFormactionForm,HttpServletRequestrequest, HttpServletResponseresponse){ UserFormuserForm=(UserForm)actionForm; IdentityBeanbean=this.getIdBean(request); UserFormform=DBController.getMemberById(Integer.parseInt(bean .getUserId()));try{ BeanUtils.copyProperties(userForm,form); }catch(IllegalAccessExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }catch(InvocationTargetExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }returnactionMapping.findForward("success");图4-2.1用户管理截图4.2.1修改密码点击“修改密码〞button,页面跳转到“web/changePasswordAction.do?userId=1〞。用户进展修改密码操作,点击“后退〞取消修改。关键代码:publicclassChangePasswordActionextendsBaseAction{publicActionForwardexecute(ActionMappingactionMapping,ActionFormactionForm,HttpServletRequestrequest,HttpServletResponseresponse){UserFormuserForm=(UserForm)actionForm;returnactionMapping.findForward("success");4.3收支录入模块收支录入页面:用户成功登陆后可以对自己的个人收支情况进展系统录入,和修改操作。对收支情况进展修改。输入查询日期范围查询收支详情。点击“添加信息〞进展收支情况录入。选择收支条目,进展删除操作。如图4-3所示:关键代码:publicclassSearchFeeActionextendsBaseAction{publicActionForwardexecute(ActionMappingactionMapping, ActionFormactionForm,HttpServletRequestrequest, HttpServletResponseresponse){ TechContentFormform=(TechContentForm)actionForm; IdentityBeanidBean=this.getIdBean(request);Listlist=null; Stringforward="";if(this.isButton(request,"save1")){ list=DBController.getMaxRate(idBean.getUserId(),form .getCreateDate(),form.getEndDate()); }elseif(this.isButton(request,"save2")){ list=DBController.getMaxFee(idBean.getUserId(),form .getCreateDate(),form.getEndDate()); }else{ list=DBController.getFeeList(idBean.getUserId(),form .getCreateDate(),form.getEndDate()); }if(list!=null&&!list.isEmpty()){ TechContentFormform2=(TechContentForm)list .get(list.size()-1); form.setTotalFee(form2.getTotalFee()); form.setTotalRate(form2.getTotalRate()); } form.setTechList(list);returnactionMapping.findForward("success");图4-3收支情况输入页面截图4.3.1收支信息添加点击“添加信息〞button,页面跳转到“web/enterAddFeeAction.do?path=Y〞日期栏选择支出日期〔系统自动弹出日期选择对话框〕,选择收支原因〔下拉list给出备选选项〕工资,奖金,分红,额外津贴,其他收入,生活费,交通费,服装费,休息娱乐,费,医疗保险,其他费用,备注录入支出具体原因。点击提交进展提交。点击后退,取消录入。如图4-3.1所示:关键代码:publicclassAddFeeActionextendsBaseAction{publicActionForwardexecute(ActionMappingactionMapping, ActionFormactionForm,HttpServletRequestrequest, HttpServletResponseresponse)throwsException{ TechContentFormform=(TechContentForm)actionForm; IdentityBeanidBean=this.getIdBean(request);if(StringUtils.isEmpty(form.getNoId())){ DBController.addFee(Integer.parseInt(idBean.getUserId()),form); }else{ DBController.updateFee(form); }if("Y".equals(form.getPath())){returnactionMapping.findForward("success"); }returnactionMapping.findForward("success2");添加收支分析主要是对用户的收入和支出进展记录,单击添加按钮的单击事件主要程序如下:publicclassAddFeeActionextendsBaseAction{ publicActionForwardexecute(ActionMappingactionMapping, ActionFormactionForm,HttpServletRequestrequest, HttpServletResponseresponse)throwsException{ TechContentFormform=(TechContentForm)actionForm; IdentityBeanidBean=this.getIdBean(request);if(StringUtils.isEmpty(form.getNoId())){//执行插入操作的方法DBController.addFee(Integer.parseInt(idBean.getUserId()),form);}else{ DBController.updateFee(form); }if("Y".equals(form.getPath())){//执行成功页面的转向 returnactionMapping.findForward("success"); } returnactionMapping.findForward("success2"); }图4-3.1添加支出信息截图4.3.2收支分析报警模块收支分析报警页面:如果用户支出大于那么系统会进展报警。如图4-3.2所示:图4-3.2收支报警页面截图4.4系统配置4.4.1Server.xml文件配置本系统采用连接池连接数据库,需要对Tomcat下的Server.xml进展配置。首先翻开tomcat下的conf文件夹,然后找到Server.xml文件,找到以下段落:<GlobalNamingResources><Resourcename="UserDatabase"auth="Container"type="org.apache.catalina.UserDatabase"description="Userdatabasethatcanbeupdatedandsaved"factory="org.apache.catalina.users.MemoryUserDatabaseFactory"pathname="conf/tomcat-users.xml"/></GlobalNamingResources>在<GlobalNamingResources>中间添加<Resourcename="jdbc/money2009"type="javax.sql.DataSource"username="sa"password="sa"driverClassName=".microsoft.jdbc.sqlserver.SQLServerDriver"maxIdle="2000"maxWait="5000"url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=money"maxActive="1000"/>4.4.2ContextServer.xml文件配置然后配置Context上下文文件:填入下面段落:<ResourceLinkglobal="jdbc/money2009"name="jdbc/money2009"type="javax.sql.DataSource"/>完成以上工作那么连接池配置成功。4.5系统局部重要功能及其代码4.5.1连接池代码首先,让我们来看看连接池的概念:连接池允许应用程序从连接池中获得一个连接并使用这个连接,而不需要为每一个连接请求重新建立一个连接。一旦一个新的连接被创立并且放置在连接池中,应用程序就可以重复使用这个连接而不必实施整个数据库连接创立过程。当应用程序请求一个连接时,连接池为该应用程序分配一个连接而不是重新建立一个连接;当应用程序使用完连接后,该连接被归还给连接池而不是直接释放。优点:使用连接池的最主要的优点是性能。创立一个新的数据库连接所消耗的时间主要取决于网络的速度以及应用程序和数据库效劳器的〔网络〕距离,而且这个过程通常是一个很耗时的过程。而采用数据库连接池后,数据库连接请求可以直接通过连接池满足而不需要为该请求重新连接、认证到数据库效劳器,这样就节省了时间。缺点:数据库连接池中可能存在着多个没有被使用的连接一直连接着数据库〔这意味着资源的浪费〕。ps:这必须要求开发人员在开发时估计这个系统最大提供的数量是多少。池的创立和分配当连接翻开时,将根据一种准确的匹配算法来创立连接池,该算法会使连接池与连接中的字符串相关联。每个连接池都与一个不同的连接字符串相关联。当新连接翻开时,如果连接字符串不准确匹配现有池,那么将创立一个新池。连接数据库代码:publicclassDBController{ publicstaticConnectiongetConnection(){ Connectionconn=null; try{ ContextinitCtx=newInitialContext(); Contextctx=(Context)initCtx.lookup("java:p/env"); //获取连接池对象 Objectobj=(Object)ctx.lookup("jdbc/money"); //类型转换 javax.sql.DataSourceds=(javax.sql.DataSource)obj; conn=ds.getConnection(); }catch(Exceptione){ e.printStackTrace(); } returnconn; }} 第五章测试软件测试事挼弩箭开发过程的重要组成局部,是用来确定一个程序平直或者性能的师傅符合开发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析,设计规格说明和编码的最终复审,是软件品质保证的关键步骤。软件测试是为了发现错误而执行程序的过程。在编写出买一个模块之后,已经对系统做了必要的单元测试和整合测试。为了验证本系统的功能及质量,本章将对银行记账系统进展全面的系统性能测试性能测试及验收测试,以求到达完善的目的。对于软件测试技术,可以从不同角度加以分类。从测试是否针对系统的内部构造和具体实现算法的角度来看,可以分为白盒测试和黑盒测试。黑盒测试也成功能测试或者数据驱动测试,着眼于程序外部构造,不考虑内部逻辑,针对软件界面和软件功能进展测试。白盒测试也称结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论