二手交易管理系统的设计与实现_第1页
二手交易管理系统的设计与实现_第2页
二手交易管理系统的设计与实现_第3页
二手交易管理系统的设计与实现_第4页
二手交易管理系统的设计与实现_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

二手交易管理系统的设计与实现摘要本次毕业设计的题目是各种物品交易管理系统的设计与实现。本论文就毕业设计的内容,系统地阐述了整个各种物品交易管理系统的功能及实现。在指导老师的带领下设计并实现了从商品管理,到评论实现,用户处理,再到管理员系统。基本上实现了各种物品信息发布的功能流程,能够实现用户与商家在网上进行互动交流。本系统界面简单直观,易于操作和使用,交互性强,完全基于INTERNET网络。关键词各种物品;交易;管理系统;系统实现ABSTRACTTHEGRADUATIONPROJECTENTITLEDDESIGNANDIMPLEMENTATIONOFTHETRANSACTIONMANAGEMENTSYSTEMOFSECONDHANDBIKEINTHISTHESIS,THECONTENTOFTHEGRADUATIONPROJECT,ASYSTEMATICEXPOSITIONOFTHEFUNCTIONANDTRANSACTIONMANAGEMENTSYSTEMOFTHEENTIRESECONDHANDBIKEDESIGNEDANDIMPLEMENTEDUNDERTHELEADERSHIPOFTHEINSTRUCTORFROMTHEMERCHANDISEMANAGEMENT,TOCOMMENT,THEUSERPROCESSING,TOTHEADMINISTRATORSYSTEMBASICALLYAFUNCTIONOFSECONDHANDBICYCLEINFORMATIONPROCESS,USERSANDBUSINESSESTOINTERACTONLINETHESYSTEMINTERFACEISSIMPLEANDINTUITIVE,EASYTOOPERATEANDUSE,INTERACTIVE,FULLYINTERNETBASEDNETWORKKEYWORDSSECONDHANDTRANSACTIONSMANAGEMENTSYSTEMSYSTEMIMPLEMENTATION目录第1章引言411选题背景412可行性分析4121技术可行性4122经济可行性5123操作可行性5第2章需求分析521用户功能需求522性能需求623主要技术分析6231J2EE技术7232STRUTS框架9第3章概要设计1231功能模块图1232处理流程设计13321系统操作流程13322数据增加流程14323数据修改流程14324数据删除流程15第4章详细设计1641系统ER图1642数据库设计16421SQLSERVER2005简介16422数据库表结构17423数据库连接技术2043界面及代码设计25431用户注册25432商品查询26433用户登陆26434网站首页27435管理员模块设计27第5章系统调试与测试2851程序调试2852程序的测试28521测试的重要性及目的28522测试的步骤30523测试的主要内容30第6章结论3261系统评价3262安全性问题32致谢34参考文献35第1章引言11选题背景在全球知识经济和信息化高速发展的今天,无论是在生活、工作还是学习方面,信息都是决定成败的关键,小到生活中的需求,大到企业的发展,特别是对企业实现跨地区、跨行业、跨国经营,信息都起着至关重要的作用,而电子商务作为一种崭新的商务运作模式,越来越受到企业的重视。随着互联网技术的广泛应用,电子商务得到了迅速的发展。J2EE技术(包括JSP,SERVLET,EJB,WEBSERVICE等)给WEB应用程序的开发提供了非常灵活的选择,其多层的体系结构向开发者提供了一种基于组件的设计和开发WEB应用的模块化方法。应用系统各层的实现技术可谓多种多样,每种技术都有其优缺点和最适用的范围。但如何把这些技术组合起来形成一个适应项目需要的稳定架构是项目开发过程中一个非常重要的问题。目前STRUTS已成为WEB应用开发中最为先进、最为成功的技术框架。随着各种主流技术的日渐成熟,越来越多的高校市场交易网站涌现了出来,高校货物得到了更好的二次利用。然而随着网络技术的不断发展,这些高校市场交易网站也越来越不符和人们的要求,它们所显现出来的缺点已经让人们开始反感。然而随着WEB20的时代的来临,多媒体网络覆盖面的不断扩大,高校市场交易网站无论是在规模上还是在技术上必将会发展的越来越成熟,为学生们提供一个更加人性化的系统稳定的,功能强大的高校市场交易平台。随着社会的发展,产品的不断更新换代使得人们对物质的要求越来越高,随之而来的问题便是越来越多的高校货物堆积了下来却无法得到更好的利用。高校学生经常把各种物品堆积了下来,却无法得到更好的利用,最后扔掉;并不能得到很好的二次利用,而其他学生可能需要这些各种物品。这个平台可以方便学生更好的处理自己边的各种物品。例如学生们可以通过这个交易平台选择自己喜欢的高校货然后进行交易。并且能将自己的各种物品放在这个平台上卖;学生可以注册成为会员,进行消息浏览,并可发布、出售、求购二手物品;管理员可以对会员发布的消息进行管理等。本论文课题新颖,主要涉及软件,数据库与网络技术等。涵盖知识面广,可有效地提高学生综合运用所学知识分析解决问题的能力,增强学生对事物的理解与掌握能力,培养学生掌握科学的研究方法,正确的设计思想,独立思考,勇于进取,探索创新,为今后进一步学习与工作奠定了良好的基础。12可行性分析121技术可行性本系统仅需要一台装有IE浏览器的计算机即可,对机器本身没有太高的要求,一般当前学校或个人电脑完全可满足要求。对于软件技术要求,现在的程序设计语言已非常成熟,要运用HTML样式,图形图象制作工具来制作生动活泼的网页及美观的图形文件或动画文件。122经济可行性由于本系统是为学生学习使用的系统,装上该应用软件,即可使用系统,系统成本主要集中在系统软件的开发上,当系统投入运行后可以为学校节约大量的人力,物力。所带来的效益远远大于系统软件的开发成本。在经济上完全可行。123操作可行性界面设计时充分考虑管理人员的习惯,使得操作简单;数据录入迅速、规范、可靠;统计准确;制表灵活;适应力强;容易扩充。第2章需求分析21用户功能需求实现一般电子商务网站的基本功能1、实现用户各种物品的上传、管理。2、用户上传物品信息的查看,以实现线下交易。3、对物品信息评论(推荐或差评)、商品搜索功能的实现。4、小纸条,即站内短信功能的实现。5、管理员后台对用户发布信息的管理功能的实现。22性能需求系统对环境的要求服务起端的最低配置是由建立站点所需要的软件来决定的,在最底配置的情况下,服务器的性能往往不进人意,现在硬件性能已经相当出色,而且价格也很便宜,因此通常应给服务器端配置高性能硬件。本机器的配置如下处理器INTERRCORETMI32350MCPU230GHZ。内存200GB硬件空间500GB题目主要采用的技术数据库MICROSOFTSQLSERVER2005。编程语言JSP服务器TOMCAT55,JDK16开发环境WINDOWS723主要技术分析JAVA不依赖平台的特征使得它受到了广泛的关注3。网站的设计主要采用J2EE技术体系,使用分层思想来设计程序。J2EE是使用JAVA进行企业开发的一套扩展规范,它提供基于组件设计、开发、部署和管理企业应用的解决方案,基于J2EE的企业级应用系统,不受任何特定操作系统、网络环境、硬件平台的束缚4。本网站在技术上除了使用JSP外,还采用了STRUTS2、HIBERNATE、以及AJAX技术。231J2EE技术目前,JAVA2平台有3个版本,它们是适用于小型设备和智能卡的JAVA2平台MICRO版(JAVA2PLATFORMMICROEDITION,J2ME)、适用于桌面系统的JAVA2平台标准版(JAVA2PLATFORMSTANDARDEDITION,J2SE)、适用于创建服务器应用程序和服务的JAVA2平台企业版(JAVA2PLATFORMENTERPRISEEDITION,J2EE)。J2EE是一种利用JAVA2平台来简化企业解决方案的开发、部署和管理相关的复杂问题的体系结构。J2EE技术的基础就是核心JAVA平台或JAVA2平台的标准版,J2EE不仅巩固了标准版中的许多优点,例如“编写一次、随处运行“的特性、方便存取数据库的JDBCAPI、CORBA技术以及能够在INTERNET应用中保护数据的安全模式等等,同时还提供了对EJB(ENTERPRISEJAVABEANS)、JAVASERVLETSAPI、JSP(JAVASERVERPAGES)以及XML技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投放市场时间的体系结构。J2EE体系结构提供中间层集成框架用来满足无需太多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,同时提供对现有应用程序集成强有力支持,完全支持ENTERPRISEJAVABEANS,有良好的向导支持打包和部署应用,添加目录支持,增强了安全机制,提高了性能。J2EE为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机制1保留现存的IT资产由于企业必须适应新的商业需求,利用已有的企业信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有系统之上的服务器端平台机制是公司所需求的。J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEATUXEDO、IBMCICS,IBMENCINA,、INPRISEVISIBROKER以及NETSCAPEAPPLICATIONSERVER。这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的企业计算领域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。由于基于J2EE平台的新闻几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。2高效的开发J2EE允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务O状态管理服务让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。O持续性服务让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。O分布式共享数据对象CACHE服务让开发人员编制高性能的系统,极大提高整体部署的伸缩性。3支持异构环境J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。4可伸缩性企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。5稳定的可用性一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因为INTERNET是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。J2EE部署到可靠的操作环境中,他们支持长期的可用性。一些J2EE部署在WINDOWS环境中,客户也可选择健壮性能更好的操作系统如SUNSOLARIS、IBMOS/390。最健壮的操作系统可达到99999的可用性或每年只需5分钟停机时间。这是实时性很强商业系统理想的选择。232STRUTS框架STRUTS最早是作为APACHEJAKARTA项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高JAVASERVERPAGES、SERVLET、标签库以及面向对象的技术水准。STRUTS这个名字来源于在建筑和旧式飞机中使用的支持金属架。这个框架之所以叫“STRUTS“,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。这也是一个解释STRUTS在开发WEB应用程序中所扮演的角色的精彩描述。当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。同样,软件工程师使用STRUTS为业务应用的每一层提供支持。它的目的是为了帮助我们减少在运用MVC设计模型来开发WEB应用的时间。我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。如果想混合使用SERVLETS和JSP的优点来建立可扩展的应用,STRUTS是一个不错的选择。早期SMALLTALK程序语言便采用了MVCMODELVIEWCONTROLLER模式PATTERNS以增加程序代码弹性,MVC模式将程序代码整理切割为三部份,MODEL部分是业务与应用领域BUSINESSDOMAIN相关逻辑、管理状态之对象,CONTROLLER部分接收来自VIEW所输入的资料并与MODEL部分互动,是业务流程控制FLOWCONTROL之处,VIEW部分则负责展现资料、接收使用者输入资料。在JAVA应用中,JFC/SWING、AWT、JSP皆是可用作VIEW之技术规格,而JAVABEAN与ENTERPRISEJAVABEAN规格则可用于MODEL程序代码,一旦应用程序以MVC模式加以适当(的)分割,MODEL部分程序代码可在不同使用者接口外观(的)应用程序中重复使用。随着JSP与SERVLET技术大量应用于以WEB为基础(的)应用程序,JAVA开发人员群体认为应以较佳之模式以提升WEB应用程序之可维护性与重复使用性。早期JSP规格书中曾列举两种可行之JSP应用架构,分别为MODEL1与MODEL2。在MODEL1架构中,JSP直接处理WEB浏览器送来之请求REQUEST,并辅以JAVABEAN处理应用相关逻辑。MODEL1架构单纯编写比较容易,但在MODEL1中JSP可能同时肩负VIEW与CONTROLLER角色,两类程序代码有可能混杂而不易维护。而MODEL2中将SERVLET纳入架构中扮演前端CONTROLLER角色,将WEB浏览器送出之请求集中送至SERVLET,SERVLET可集中管理使用者登入、权限控制、多国语言转换等前置处理,再视需求转向给对应之JSP处理。MODEL2中采用了较佳之MVC模式,但增加了编写复杂度。STRUTS是APACHE软件基金下JAKARTA项目的一部分。除STRUTS之外,还有其他成功的开源新闻,包括TOMCAT,ANT和VELOCITY。2005年CRAIGRMCCLANAHAN先生贡献了他编写的JSPMODEL2架构之APPLICATIONFRAMEWORK原始程序代码给APACHE基金会,成为APACHEJAKARTA计划STRUTSFRAMEWORK前身。开始的代码基础从2005年5月开始开发,直到2001年6月,10版本发布。有30多个开发者参与进来,并有数千人参与到讨论组中。STRUTS代码基础由一个志愿的COMMNITTER团队来管理。到2002年,STRUTS小组共有9个志愿COMMNITTER。STRUTS框架的主要架构设计和开发者是CRAIGRMCCLANAHAN。CRAIG也是TOMCAT4的主要架构师,以及JAVAWEBSERVICESDEVELOPERPACK的主要架构师和实现者。他现在是SUN的JAVASERVERFACESJSR127以及J2EE平台的WEB层架构的规范领导。CRAIGRMCCLANAHAN先生是JCPEXPERTGROUP成员之一,曾参与JSP规格制定与TOMCAT4之编写,因此STRUTSFRAMEWORK广受JAVA开发人员群体所重视。BORLAND自2002年底开始于开发工具JBUILDER中支持STRUTSFRAMEWORK。STRUTS是APACHE基金会JAKARTA项目组的一个OPENSOURCE项目,它采用MVC模式,能够很好地帮助JAVA开发者利用J2EE开发WEB应用。和其他的JAVA架构一样,STRUTS也是面向对象设计,将MVC模式“分离显示逻辑和业务逻辑“的能力发挥得淋漓尽致。STRUCTS框架的核心是一个弹性的控制层,基于如JAVASERVLETS,JAVABEANS,RESOURCEBUNDLES与XML等标准技术,以及JAKARTACOMMONS的一些类库。STRUTS有一组相互协作的类(组件)、SERVLET以及JSPTAGLIB组成。基于STRUTS构架的WEB应用程序基本上符合JSPMODEL2的设计标准,可以说是一个传统MVC设计模式的一种变化类型。STRUTS最早是作为APACHEJAKARTA项目的组成部分问世运作。项目的创立者希望通过对该项目的研究,改进和提高JAVASERVERPAGES、SERVLET、标签库以及面向对象的技术水准。STRUTS的目的是为了减少在运用MVC设计模型来开发WEB应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。STRUTS跟TOMCAT、TURBINE等诸多APACHE项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。除此之外,STRUTS的优点主要集中体现在两个方面TAGLIB和页面导航。TAGLIB是STRUTS的标记库,灵活运用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许STRUTS是一个很好的起点。关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。MVC即MODELVIEWCONTROLLER的缩写,是一种常用的设计模式。MVC减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。STRUTS是MVC的一种实现,它将SERVLET和JSP标记(属于J2EE规范)用作实现的一部分。STRUTS继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。第3章概要设计31功能模块图校园二手物品交易系统用户管理员注册登录发布二手信息信息查询发表留言发布求购信息新浏览帐户管理出售求购信息管理会员管理留言管理短信管理资讯管理公告管理32处理流程设计321系统操作流程系统登录界面输入操作员及密码检查密码正确功能界面数据库系统主界面功能处理系统管理错误信息密码错误322数据增加流程添加信息时,编号字段由系统自动生成,且不能修改,其他信息由用户输入,之后对数据进行合法判断,合法则写入保存至数据库,不合法则重新输入数据。数据增加流程图开始自动生成编号输入数据是否合法写入数据库结束图32数据增加流程图323数据修改流程在修改信息时,先选中一条待修改的记录,然后直接输入数据,判断合法性,合法则保存至数据库,不合法重新输入。数据修改流程图如图33所示。开始选择需要修改记录输入数据是否合法写入数据库结束图33数据修改流程图324数据删除流程当用户选定一条记录时,单击删除按钮,会提示用户是否确定删除,然后删除数据库相关内容。数据删除流程图如图34所示。开始选择需要删除记录是否删除更新数据库图34数据删除流程图第4章详细设计41系统ER图用户名密码地址电话用户管理二手物品属于类别编号品牌名称名称型号详细登录发布信息评论留言短信息用户42数据库设计421SQLSERVER2005简介SQLSERVER2005是一个基于关系型数据库模型建立的数据库管理系统软件DBMS。它帮助用户方使地得到所需信息,并提供强大的数据处理工具。它可以帮助用户组织和共享数据库信息,以便于根据数据库信息作出有效的决策。另外,仅有这样个数据库管理系统软件DBMS,则只能进行一些信息系统所需要的简单数据处理,且对操作者有较高的操作技能要求。因此,信息系统的开发者都是在某种数据库管理系统软件DBMS环境下编写相应的应川程序,以形成一个能够满足应用需求且操作尽可能简单的应用型信息系统,这被称之为二次开发。SQLSERVER2005还具有以下特点1使信息更易于查找和使用SQLSERVER2005继续为简便地查找信息提供易于使用的工具。2支持WEB功能的信息共享SQLSERVER2005可以通过企业内部网络INTERNET很简便地实现信息共享,而且它可以很容易地将数据库定位到浏览器中,它将桌面数据库的功能和网站的功能结合在一起。3用于信息管理的强大解决方案高级用户和开发人员可以创建那些将SQLSERVER2005界面客户端的易用性和SQL服务器的可扩展性和可靠性结合在一起的解决方案。4改变了数据库窗口可在SQLSERVER2005容纳并显示新的对象,增强了SQLSERVER2005数据库的易用性。5提供名称自动更正功能自动解决当用户重新命名数据库对象时出现的常见负面效应。例如,当用户重命名表中的字段时,将自动在诸如查询的相关对象中进行相应的更改。6具有子数据表功能子数据表在同一窗口中,提供了嵌套式的视图,这样就可以在同一窗口中专注于相关的数据并对其进行编辑。7用户只需简单地将SQLSERVER2005对象表、查询等从数据库放到ODBC数据源中,即可从SQLSERVER2005中将数据导出到其他数据库中。8数据访问页功能该功能可使用户快捷方便地创建数掂HTML页,并通过数据HTML页,将数据库应用扩展到企业内部网络INTERNET上。这将帮助用户比以往更快捷、高效的方式共享信息。9共享组件的集成SQLSERVER2005利用新的WEB组件和位于浏览器中的COM控件,为用户提供了多种查看和分析数据的方式。10交互性SQLSERVER2005支持OLEDB,使用户可以将SQLSERVER2005界面的易用性与诸如SQLSERVER2005的后端企业数据库的可升级性相结合。422数据库表结构设计表“ADMIN”列名数据类型长度允许空IDINT4否USERNAMEVARCHAR50否PASSWORDVARCHAR50否CREATTIMEDATETIME8否FLAGINT4否ISUSEINT4否LOGINTIMESINT4否QUANXIANVARCHAR1000否设计表“AFFICE”列名数据类型长度允许空IDINT4否TITLENVARCHAR100否CONTENTNVARCHAR200否ADDTIMEDATETIME8否ADDERNVARCHAR50否IFHIDEINT4否设计表“GUESTBOOK”列名数据类型长度允许空IDINT4否NICKNAMENVARCHAR100否PICNVARCHAR100否EMAILNAVARRE50是QQNVARCHAR50是WEBURLNVARCHAR100是BLOGURLNVARCHAR100是EXPRESSIONSNVARCHAR100否CONTENTNVARCHAR200否ADDTIMEDATETIME8否设计表“MEMBER”列名数据类型长度允许空IDINT4否USERNAMENVARCHAR50否PASSWORDNVARCHAR100否TYPENVARCHAR50否REGTIMEDATETIME8否IFUSEINT4否LOGINTIMESINT4否LASTTIMEDATETIME8否LASTIPNVARCHAR50否设计表“NEWS”列名数据类型长度允许空IDINT4否TITLENVARCHAR150否PICNVARCHAR150否CONTENTTEXT16否ADDTIMEDATETIME8否ADDERNVARCHAR50否IFHIDEINT4否VISITINT4否UPINT4否设计表“POST”列名数据类型长度允许空IDINT4否DNUMNVARCHAR50是ADDTIMENVARCHAR50是FLAGNVARCHAR50是MEMBERNVARCHAR50是设计表“PREP”列名数据类型长度允许空IDINT4否TIDINT4是NUMNVARCHAR50是TELNVARCHAR50是LINKMANNVARCHAR50是ADDRESSNVARCHAR100是ADDTIMENVARCHAR50是FLAGNVARCHAR50是MEMBERNVARCHAR50是设计表“SALE”列名数据类型长度允许空IDINT4否TITLENVARCHAR50是TYPENVARCHAR200是URLNVARCHAR200是CONVARCHAR50是TIMENVARCHAR50是PRICENVARCHAR50是VIPRICENVARCHAR50是CONTENTTEXT16是ADDTIMENVARCHAR50是FLAGNVARCHAR50是NUMINT4是SLINT4是423数据库连接技术JDBC技术是JAVADATABASECONNECTIVITY的缩写,它是SUN公司提供的一种支持基本SQL功能的通用的应用程序接口APPLICATIONPROGRAMMINGINTERFACE。它由一组用JAVA语言编写的类和接口组成。通过这些类和接口,程序开发人员可以在JAVA语言中方便地建立与数据库的链接,通过执行相应SQL语句,完成对不同数据库的访问。因此,开发人员使用JDBCAPI可以不必编写一个应用程序来访问SYBASE数据库,又另外编写一个应用程序去访问ORACLE数据库,再写一个应用程序访问MICROSOFT的SQLSERVER。不但如此,使用JAVA语言编写的应用程序可以在任何支持JAVA的平台上运行,不必在不同的平台上开发不同的应用程序。简单地说,JDBC能完成下列三件事1同一个数据库建立连接;2向数据库建立连接;3处理数据库返回的结果。JDBC是一种通用低层的应用程序编程接口,它在不同的数据库功能模块的层次上提供一个统一的用户界面。说JDBC是一处低级的API,是指它直接调用SQL命令,它比其他的一些数据库连接API要容易使用些,但它有同样可以作为更高级的,用户办面更友好的API或开发工具基础。很多可视化的JAVA开发工具,如VISUALAGEFORJAVA、VISUALCAF、J等都提供了基于JDBC的更面向用户的类和包,直接将关系数据库的表或视图映射为JAVA类,程序员通过可视化工具直接对JAVA对象进行操作,而真正需要的SQL调用则根据程序员发出的对对象的各种属性、方法的操作来自动产生。另一种使用JDBCAPI的方式为,用户程序可以提供一个界面(如菜单等)让用户选择对数据库进行的操作,选中一个任务后,提示用户输入一些必要的信息,然后根据用户的输入产生相应的SQL命令以及JAVA程序。通过这处方式,用户可以完成对数据库的操作,即使他并不了解SQL语法以及JDBC编程。数据库访问的三层结构如图51所示,浏览器端程序要访问数据库,首先通过中间件,然后由中间件对数据库操作权限进行认证,认证通过才能对数据库进行操作。图51使用中间件的数据库访问三层结构用户对数据库的存取权限认证是中间件中完成,对数据库的查询、插入、更新和删除操作等都封装在中间件中,该中间件位于服务器端,中间件对数据库进行操作后,再将处理结果通过WEB服务器返回到浏览器端用户。这样,在用户端输入的用户名和密码,可以通过加密算法进行加密后在网络上传输,在中间件中进行解密认证,然后再进行数据库的存取操作,数据库存取权限的用户名和密码出现在位于服务器端的中间件中,这样就更加安全。本系统采用的正是这样的三层结构的数据库访问模式。在三层模型中,命令将被发送到服务的”中间层”,而”中间层”将SQL语句发送到数据库。数据库处理SQL语句并将结果返回”中间层”,然后”中间层”将它们返回用户。其模型如图52所示。图52JDBC的三层模型因为”中间层”可以进行对访问的控制并协同数据库的更新,并且可以使用一个易用的高层API,这个API可以由“中间层”进行转换,转换成低层的调用。所以在许多种情况下,三层模型可以提供更好的性能,本系统中所采用的就是此种模型。JDBC是JAVA应用程序与数据库的沟通桥梁。它提供了三项服务功能一、与数据库建立连接。二、将SQL语句传递给数据库。三、从数据库取得SQL语句的执行结果。当JDBC要与数据库建立连接前,首先,它必须先取得连接此数据库的JDBC驱动程序,CLASSFORNAME即是在执行此项工作。建立数据库连接的第一步骤就是将JDBC驱动程序的类载入至JVM(JAVAVIRTUALLMACHINE)中,本系统中利用JAVALANGCLASS类内的FORNAME()静态函数依据指定的类名称,将JDBC驱动程序载入进来。完成载入驱动程序的步骤后,必须使用JAVASALDRIVERMANAGER类所提供的GETCONNECTION()静态函数,取得与数据库间的连接对象。此连接对象的类类型为JAVASALCONNECTION,必须通过它才能将SQL指令传递给数据库,而执行结果也需要通过连接对象来取得。当取得连接对象后,还必须取得STATEMENT对象才能对数据库执行SQL指令。STATEMENT主要实现两个功能执行SQL语句以及取得执行结果。在JAVASQLSTATEMENT的SQL对象中执行查询或修改命令的函数后传回的是一个RESULTSET对象,这个对象提供了一个存取SQL执行结果的管道,以便通过它将表格数据从数据库中取出。每个STATEMENT对象只能产生一个RESULTSET对象。数据库连接如图53所示建立JDBCODBC桥建立数据库连接建立是否成功出错处理否是执行SQL操作SQL是否出错返回错误信息返回执行结果是否图53数据库的连接处理数据库的连接处理具体实现如下/建立JDBCODBC桥SUNJDBCODBCJDBCODBCDRIVER/桥建立不成功时的错误处理CATCHCLASSNOTFOUNDEXCEPTIONEVENT/建立与数据库的连接,并发送SQL查询语句,将结果保存到RS对象中CON建立JDBCODBC桥SQLSQL查询语句执行查询RS返回结果/SQL出错处理CATCHSQLEXCEPTIONE1有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBCAPI,就不必为访问SYBASE数据库专门写一个程序,为访问ORACLE数据库又专门写一个程序,或为访问INFORMIX数据库又编写另一个程序等等,程序员只需用JDBCAPI写一个程序就够了,它可向相应数据库发送SQL调用。同时,将JAVA语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是JAVA语言“编写一次,处处运行”的优势。JAVA数据库连接体系结构是用于JAVA应用程序连接数据库的标准方法。JDBC对JAVA程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。JAVA具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是JAVA应用程序与各种不同数据库之间进行对话的方法。而JDBC正是作为此种用途的机制。JDBC扩展了JAVA的功能。例如,用JAVA和JDBCAPI可以发布含有APPLET的网页,而该APPLET使用的信息可能来自远程数据库企业也可以用JDBC通过INTRANET将所有职员连到一个或多个内部数据库中(即使这些职员所用的计算机有WINDOWS、MACINTOSH和UNIX等各种不同的操作系统)。随着越来越多的程序员开始使用JAVA编程语言,对从JAVA中便捷地访问数据库的要求也在日益增加。MIS管理员们都喜欢JAVA和JDBC的结合,因为它使信息传播变得容易和经济。企业可继续使用它们安装好的数据库,并能便捷地存取信息,即使这些信息是储存在不同数据库管理系统上。新程序的开发期很短。安装和版本控制将大为简化。程序员可只编写一遍应用程序或只更新一次,然后将它放到服务器上,随后任何人就都可得到最新版本的应用程序。对于商务上的销售信息服务,JAVA和JDBC可为外部客户提供获取信息更新的更好方法。简单地说,JDBC可做三件事与数据库建立连接、发送SQL语句并处理结果。下列代码段给出了以上三步的基本示例CONNECTIONCONDRIVERMANAGERGETCONNECTION(“JDBCODBCWOMBAT“,“LOGIN“,“PASSWORD“);STATEMENTSTMTCONCREATESTATEMENT();RESULTSETRSSTMTEXECUTEQUERY(“SELECTA,B,CFROMTABLE1“);WHILE(RSNEXT()INTXRSGETINT(“A“);STRINGSRSGETSTRING(“B“);FLOATFRSGETFLOAT(“C“);上述代码对基于JDBC的数据库访问做了经典的总结。43界面及代码设计431用户注册游客可以进行注册会员,注册会员需要填写用户的用户名、登陆密码、真是姓名、性别、出生日期、籍贯、EMAIL、密码提示问题、提示答案。界面如下图所示432商品查询用户可以进行商品查询操作,可以按商品名称、商品类别、生产厂家进行查询,界面如下图所示433用户登陆用于用户登陆进入系统的界面,用户需要建立一个账号和密码才能进入使用系统,当用户输入自己的账号和密码时,系统进行验证,如果正确,进入系统如果错误,则提示用户输入的信息不正确,重新输入信息该界面还为新用户设置了专门的注册链接,通过点击注册按钮直接进入新用户的注册界面在登陆的时候,密码框采用密文形式输入,保护用户登陆的安全性。界面如下图434网站首页网站首页以清新的色彩搭配设计,突出简洁大方的效果。435管理员模块设计管理员登陆后可以对网站的所有信息进行管理,包括商品分类,商品信息,订单信息,注册会员等。第5章系统调试与测试51程序调试在设计系统的过程中,存在一些错误是必然的。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比较容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。52程序的测试521测试的重要性及目的(1)测试的重要性软件的测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40以上。而在软件开发的总成本中,用在测试上的开销要占30到50。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度,这包括认为测试工作不如设计和编码那样容易取得进展难以给测试人员某种成就感以发现软件错误为目标的测试是非建设性的,甚至是破坏性的,测试中发现错位是对责任者工作的一种否定测试工作枯燥无味,不能引起人们的兴趣测试工作是艰苦而细致的工作对自己编写的程序盲目自信,在发现错误后,顾虑别人对自己的开发能力的看法。这些观点对软件测试工作是极为不利的,必须澄清认识、端正态度,才可能提高软件产品的质量。(2)测试的目的如果测试的目的是为了尽可能多地找出错误,那么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。软件测试是为了发现错误而执行程序的过程测试是为了证明程序有错,而不是证明程序无错误一个好的测试用例是在于它能发现至今未发现的错误一个成功的测试是发现了至今未发现的错误的测试。这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。522测试的步骤与开发过程类似,测试过程也必须分步骤进行,每个步骤在逻辑上是前一个步骤的继续。大型软件系统通常由若干个子系统组成,每个子系统又由若干个模块组成。因此,大型软件系统的测试基本上由下述几个步骤组成(1)模块测试在这个测试步骤中所发现的往往是编码和详细设计的错误。(2)系统测试在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。(3)验收测试在这个测试步骤中发现的往往是系统需求说明书中的错误。523测试的主要内容为了保证测试的质量,将测试过程分成几个阶段,即代码审查、单元测试、集成测试、确认测试和系统测试。(1)单元测试单元测试集中在检查软件设计的最小单位模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。(2)集成测试集成测试是将模块按照设计要求组装起来同时进行测试,主要目标是发现与接口有关的问题。如一个模块与另一个模块可能有由于疏忽的问题而造成有害影响;把子功能组合起来可能不产生预期的主功能;个别看起来是可以接受的误差可能积累到不能接受的程度;全程数据结构可能有错误等。(3)确认测试确认测试的目的是向未来的用户表明系统能够像预定要求那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是确认测试的任务,即软件的功能和性能如同用户所合理期待的那样。(4)系统测试软件开发完成以后,最终还要与系统中其他部分配套运行,进行系统测试。包括恢复测试、安全测试、强度测试和性能测试等。单独对系统的测试主要从以下几方面入手功能测试测试是否满足开发要求,是否提供设计所描述的功能,是否用户的需求都得到满足。功能测试是系统测试最常用和必须的测试,通常还会以正式的软件说明书为测试标准。强度测试及性能测试测试系统能力最高实际限度,即软件在一些超负荷情况下功能实现的情况。安全测试验证安装在系统内的保护机构确实能够对系统进行保护,使之不受各种非常的干扰。针对本系统主要是对权限系统的测试和对无效数据、错数据、和非法数据干扰的能力的测试。经过上述的测试过程对本系统进行测试后,系统基本满足开发的要求,测试宣告结束。第6章结论61系统评价本文通过本系统设计与开发,从而得出下列结论(1)学习一门新技术,最重要的是实践,只有多动手才能尽快掌握它。(2)一个系统的开发,经验是最重要的,经验不足,就难免会有许多考虑不周之处。(3)要想吸引更多的用户,系统的界面必须要美观、有特色、友好,功能要健全。不过由于经验不足,我设计的图形界面比较简单。只是对基本功能进行了开发。(4)本次开发,我参考了很多本系统的例子,吸取了一些别的本系统的长处,对自己的毕业设计进行了完善,但是还有很多的不足之处,有待以后进一步学习。实践证明,本系统有着很好的发展前景,经测试运行。本文所制作的系统界面友好、使用灵活、操作简单、功能齐全、表现方式独特,已基本具备了成熟的技术理论。由于时间仓促,本次设计由我完成本系统的制作,对我这样一个JSP新手而言所制作的模块还有不完善的地方。数据库的设计也比较简单。还有很多毕业设计中用到JSP语言的知识也不够全面,还有很多地方不能够作到完全的理解和掌握。通过这次毕业论文的设计制作使本人受益匪浅。首先,由于毕业设计所用的JSP技术和其中用到JSP语言的其他部分是在课堂上没有接触过的,要用它来做设计必须通过大量自学来掌握,在这个过程中,不仅大大提高了我的自学能力而且让我对JSP的学习有了进一步的认识。由于是独立完成在毕业设计的过程遇到了很多的困难,我求教了不少老师和同学,在这个过程中让我体会到了,一个团队的重要性。62安全性问题WEB开发中安全性是必须考虑的一个很重要的方面,特别是在诸如个信息等敏感数据的模块中更是关键,所以这也是后期开发需要引起重视的。下面就这方面的技术和解决方案加以讨论。1安装防火墙安装防火墙并且屏蔽数据库端口能有效地阻止了来自INTERNET上对数据的攻击。2输入检查和输出过滤用户在请求中嵌入恶意HTML标记来进行攻击破坏,防止出现这种问题要靠输入检查和输出过滤,而这类检查必须在服务器端进行,一旦校验代码发现有可疑的请求信息,就将这些可疑代码替换并将其过滤掉。致谢在本次毕业论文过程中,得到了指导老师的指导与支持。在此特别感谢指导老师的大力帮助。指导老师的悉心指导和大力支持,在总体结构、功能的把握上给予了非常大的帮助,同时根我们提供了非常优越的设计环境,并对我在编程、数据库设计等细节工作上给予了耐心的指导,对于我顺利完成这次毕业论文起到了关键性的作用。我还要感谢我的母校,以及在大学四年生活中给予我关心和帮助的老师和同学,是他们教会了我专业的知识和做人的道理。通过这次毕业论文我还明白了作为一名计算机专业的大学毕业生,我们要会的不仅仅是编写代码,更重要的是要有整体把握系统设计的能力。我会在以后的工作和学习中不断完善自己,为我最热爱的母校争光,为自己翻开辉煌的新篇章。参考文献1BRUCEECKELJAVA编程思想机械工业出版社,2003年10月13782赛奎春JAVA工程应用与项目实践机械工业出版社,2002年8月232943FLANAGANJAVA技术手册中国电力出版社,2002年6月14654孙一林,彭波JSP数据库编程实例清华大学出版社,2002年8月302105LEEANNEPHILLIPS巧学活用JSP电子工业出版社,2004年8月1

温馨提示

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

评论

0/150

提交评论