资源描述
课题:电子拍卖系统的设计与实现姓名:*学号:*班级:*学院:*指导教师:*完成时间:摘 要本电子拍卖系统以Windows XP为开发平台,MyEclipse为开发工具,MySQL为后台数据库,利用JSP技术和sevlet技术来实现动态网页制作。从技术和设计两方面论述系统的设计和开发过程。在技术上,深入探讨电子拍卖系统工作原理,分析拍卖流程。在设计实现上,以拍卖物品管理,卖方拍卖项目管理,买方拍卖项目管理,用户管理等主要模块来实现其功能。通过软件开发流程,前台开发和后台开发同时结合,以功能实现为原则,利用所学知识分部对各个模块进行设计,最终完成了整个系统的实现。本篇论文通过几个方面阐述电子拍卖系统全过程。关键字:JSP,电子拍卖,MySQLAbstractThe electronic auction system to Windows XP as a development platform, the MyEclipse development tools, MySQL back-end database using JSP technology and sevlet technology to achieve a dynamic web page production. Discusses two aspects of technology and design the system design and development process.Technically, the depth study of the electronic auction system works, the analysis of the auction process. To auction management on the design and implementation, the Vendor Project Management auction, the buyer auction project management, user management module to achieve its function. Through the software development process, the front - and back-office development at the same time the feature is implemented as the knowledge segment design for each module, the final completion of the entire system to achieve. In this thesis several aspects the whole process of the electronic auction system.Key words:JSP, Electronic auction,MySQL目 录引 言- 1 -系统概述- 2 -1.1课题来源与意义- 2 -1.2国内外发展状况- 2 -1.3系统开发环境及技术介绍- 3 -1.3.1 JSP简介- 3 -1.3.2 MySQL简介- 4 -1.3.3 Tomcat简介- 4 -系统需求分析- 6 -2.1 功能需求- 6 -2.2性能需求- 6 -2.3 可行性分析- 7 -2.4 数据管理需求- 7 -2.5 故障处理需求- 8 -2.6 运行环境需求- 8 -系统总体设计- 9 -3.1 设计原理- 9 -3.2 系统模块划分- 9 -3.3 系统流程- 10 -3.4 系统功能模块- 10 -数据库设计- 11 -4.1 数据库需求设计- 11 -4.2 MySQL管理- 11 -4.3 创建数据库- 12 -4.4 关系E-R图设计- 12 -4.5 数据库表设计- 14 -4.6 数据库连接- 17 -系统详细设计和实现- 19 -5.1 物品购买功能实现- 19 -5.2 前台页面设计- 20 -系统测试- 20 -6.1软件测试目的- 20 -6.2 软件测试的基本原则- 20 -6.3 测试方法- 20 -6.4 功能模块测试- 20 -6.5 测试举例- 20 -6.6 性能分析- 20 -6.7 测试总结- 20 -结 论- 20 -致 谢- 20 -参考文献- 20 -附 录- 20 -I引言引 言随着社会科技的不断发展和人们购物意识的不断革新,网上购物成为一种新型的购物方式,正逐渐被人们所接受和认可。而作为网上购物的方式之一的电子拍卖形式给人们的购物带来一种全新的体验。人们可通过网站发布自己想要拍卖的商品信息,也可以通过竞价去购买自己想要的商品。即具有一般购物网站的成本低廉,方式灵活,运行快捷等的特点,更具有自由竞争和公平合理的特性。本电子拍卖系统是传统拍卖形式在线实现。通过网络实施的价格谈判交易活动,即利用互联网在网站上公开发布将要招标的物品或者服务的信息,通过竞争投标的方式将它出售给出价最高或最低的投标者。其实质是以竞争价格为核心,建立生产者和消费者之间的交流与互动机制,共同确定价格和数量,从而达到均衡的一种市场经济过程。它通过网络将过去少数人才能参与的贵族式的物品交换形式,变成每一位网民都可以加入其中的平民化交易方式。网上拍卖不仅是网络时代消费者定价原则的体现,更重要的是拍卖网站营造了一个供需有效集结的市场,成为消费者和生产商各取所需的场所,因此是一种典型的中介型电子商务形式。相对与传统拍卖,网上拍卖的特点在于每个商家都可以制定一套适合自己的拍卖规则,并且通过网上拍卖还可以使定价达到更准确的水平,同时能够参与拍卖的人的范围也大大增加了。系统也存在缺陷与不足,首先系统还没有提供与电子银行的接口,如果提供将可以通过电子银行的操作,可以实现从买家对卖家的自动付款;其次本系统没有提供如个人身份认证、信用管理等细节问题实现- 1 -系统概述系统概述1.1 课题来源与意义随着网络技术的不断发展和人们购物意识的不断革新,网上购物成为一种新型的购物方式,正逐渐被人们所接受和认可。而网上购物的方式之一的电子拍卖形式给人们的购物带来另一种全新的体验。人们可以通过网站发出自己想拍卖的物品的信息,也可以通过竞价购买自己想要的物品。即具有一般购物网站的成本低廉,方式灵活,运行快捷等的特点,更具有自由竞争和公平合理的特性。拍卖网站的优势在于其强大的网络效应用的人越多,网站就越有用。”Ebay的Pierre Omidyar如是说。这也意味着在拍卖业中的先进入优势要比在网上零售业要大。这就是当Ebay在阻止竞争对手与其网站进行连接并拒绝提供价格及投标信息时,会遭到反托拉斯调查的原因。Ebay目前已注册的会员有1000万人,参与竞拍的物品有3000万件。每一用户几乎每月在它的网站上花费2小时,远远多于同等忠诚的亚马逊顾客在网上所花的时间。Ebay收取的手续费通常不超过交易金额的7.5%,而网下拍卖的最低手续费为25%。Omidyar先生非常高兴地指出,Ebay作为一个纯电子商务公司,从建立之初就一直持续赢利。所以无怪乎,一些拍卖行和跳蚤市场的经营者抱怨他们将失去许多生意。当然对于传统的拍卖行而言,Ebay不仅仅是唯一的威胁,亚马逊和雅虎也有他们自己的拍卖业务。因此华泰汽车也试探性的在销售方面做成一个汽车拍卖系统来进一步对企业进行信息化改造。1.2 国内外发展状况在世界上最大的鲜花交易市场荷兰阿斯米尔花卉拍卖市场,每天都可以拍卖约1400万支鲜花和150万盆盆花。拍卖通过拍卖钟进行,每个拍卖钟只拍卖某一类花卉。当一批花卉投入拍卖后,拍卖钟便显示出花卉品种、规格、数量。购买者根据自己的需要及时按下桌上的按钮,指针停止时所指的便是成交价格,当即付款。已成交的货物,根据购买者的需要进行包装,在一天内由拍卖场用冷藏车或飞机运往世界各地。在日本,大田花卉市场也在采用电子拍卖方式,并成为世界第三大鲜花交易市场。随着一些在本地局域网上的拍卖的相继成功和电子商务在全球的兴起,一些以Internet为平台的拍卖网站也相继成立,如eBay网站悄然在互联网上兴起。1995年9月,身居硅谷的比埃尔.奥米德亚建立了一个网页,名为“eBay网站”。eBay提供了一个开放式的网上交易平台,任何网上用户只要在线上完成注册手续,就可以自由参加网上拍卖活动,进行交易。eBay向买方提供空间,展示要拍卖的物品信息。买卖双方可通过网上支付系统付款eBay开辟了意见反馈系统来监督电子拍卖交易公平、公正的进行。中国网上电子拍卖的历史从1999年6月16日雅宝拍卖网站正式开通开始,经历了从单纯模仿美国eBay模式到寻求“中国特色”的过程。随后,中国的传统拍卖行纷纷触网,建立有拍卖主体资格的拍卖网站。由于拍卖业在我国普及率不高,中国的互联网技术,电子商务发展落后于美国等发达国家,所以网上拍卖的发展还处于起步阶段,网上拍卖中存在较多问题,如交易不流畅,债务划分不清,易给用户造成损失。2001年4月有关的调研结果表明虽然互联网网站发展还不是很完善,但我国的电子拍卖还是发展得很热闹。另外本系统所应用的开发语言JSP也在国内外发展日益成熟。JSP全称是Java Server Pages,翻译过来可以称为“基于JAVA的服务器端动态页面技术”。它由Sun Microsystems公司在1999年6月推出,近年来已发展成为一种最流行的动态网页开发技术。JSP在HTML代码中嵌入Java程序片段,并使用各种JSP指令,构成了JSP页面。这种页面可以完成操作数据库、上传文件等复杂的逻辑处理功能。另外,还通过支持JavaBean实现了功能扩展。1.3 系统开发环境及技术介绍本系统采用Brower/Sever架构,以Windows XP为开发平台,MyEclipse为开发工具,MySQL为后台数据库,采用JSP作为主要的程序设计语言,MySQL作为后台数据库的管理信息系统。Tomcat作为WEB服务器承载。1.3.1 JSP简介JSP是Java Server Page(Java服务器页面)的简称,它是由Sun Microsystems公司倡导,多家公司参与一起建立的一种动态网页技术标准,主要用于开发动态网页。JSP技术让动态网页的编写更加容易、功能更强,可移植性、可扩展性更好。总结起来,它的特点如下。1)将内容的生成和显示进行分离。使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面。使用JSP标识或者小脚本来生成页面上的动态内容。生成内容的逻辑被封装在标识JavaBeans 组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成。在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容。2)强调可重用的组件。绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者Enterprise JavaBeans TM组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。 3)采用标识简化页面开发。Web页面开发人员不会都是熟悉脚本语言的编程人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的。标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能。 4)一次编写,处处运行。由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都要被转换成Java Servlet,所以JSP页面就具有Java技术所有的好处,包括健壮的存储管理、安全性以及跨平台性。1.3.2 MySQL简介MySQL 是瑞典的MySQL AB公司开发的一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统。MySQL 完全适用于网络,用其建造的数据库可在因特网上的任何地方访问,因此,可以和网络上任何地方的任何人共享数据库。MySQL具有功能强、使用简单、管理方便、运行速度快、可靠性高、安全保密性强等优点。MySQL用C和C+编写,它可以工作在许多平台(Unix,Linux,Windows)上,提供了针对不同编程语言(C,C+,JAVA等)的API函数;使用核心线程实现多线程,能够很好的支持多CPU;提供事务和非事务的存储机制;快速的基于线程的内存分配系统;MySQL采用双重许可,用户可以在GNU许可条款下以免费软件或开放源码软件的方式使用MySQL软件,也可以从MySQL AB公司获得正式的商业许可。除了以上特点,MySQL 还有一个最大的特点,那就是在诸如 UNIX 这样的操作系统上,它是免费的,可从因特网上下载其服务器和客户机软件。并且还能从因特网上得到许多与其相配的第三方软件或工具。而在 Windows 系统上,其客户机程序和客户机程序库是免费的。1.3.3 Tomcat简介Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的Servlet 和JSP 规范总是能在Tomcat 中得到体现,Tomcat 5 支持最新的Servlet 2.4 和JSP 2.0 规范。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。Tomcat不仅仅是一个Servlet容器,它也具有传统的Web服务器 的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块, 让Apache处理静态Html,而Tomcat处理Jsp和Servlet。这种集成只需要修改一下Apache和Tomcat的配置文件即可。 另 外,Tomcat提供Realm支持。Realm类似于Unix里面的group。在Unix中,一个group对应着系统的一定资源,某个group不 能访问不属于它的资源。Tomcat用Realm来对不同的应用(类似系统资源)赋给不同的用户(类似group)。没有权限的用户则不能访问这个应用。 Tomcat提供三种Realm,1:JDBCRealm,这个Realm将用户信息存在数据库里,通过JDBC获得用户信息来进行验证。2:JNDIRealm,用户信息存在基于LDAP的服务器里,通过JNDI获取用户信息。3:MemoryRealm,用户信息存在一个xml文件里面,上面讲的manager应用验证用户时即使用此种Realm。通过Realm我们可以方便地对访问某个应用的客户进行验证。 - 5 -系统需求分析系统需求分析2.1 功能需求用户打开系统登录页面,通过登录之后才有一定的权限,登录之后,根据相应的身份以及权限,就可以在对应的界面进行相应的操作了。1.竞拍方:在线修改:对个人信息进行修改。在线提问:可在留言板进行留言提问。在线竞价:买方可对商品进行竞拍购买操作。2.拍卖方:发布拍卖项目:发布所要拍卖商品的信息。制定规则:可对拍卖物品进行规则制定,如起始价,价格阶梯,拍卖时间段。在线留言:可在系统留言板上留言已经查看留言。拍卖项目报告:拍卖成功后系统自动生成拍卖信息报告。拍卖物品管理:可对拍卖的物品进行相关操作。2.2性能需求1准确性和及时性在系统设计和开发过程中,不仅要确保本次数据处理结果的准确性,还要考虑本次数据处理结果对整个系统的影响,从而保证整个系统的准确性。系统在日常处理过程中的响应速度要达到实时要求,以及实时反馈信息。在系统设计和开发过程中,还要充分考虑系统当前和将来可能承受的工作量,使系统处理能力和响应时间能够满足用户对信息处理的要求。2系统的可扩充性在系统开发过程中,应该充分考虑将来的可扩充性。这就需要系统提供足够的方式进行功能调整和扩充。为了实现这一点,应通过系统的开放性来完成,即系统应是一个开放的系统,只要符合一定的规范,就可以简单的加入和减少系统的模块、配置系统的硬件。通过软件的修补、替换完成系统的升级和更新。可以说,具有良好的扩展性的软件才是优秀的软件。3系统的易用性和易维护性为了让系统使用效率高,用户可以很快的使用网上竞标系统,而不必专门去学习该软件的使用。因此系统应该提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统设计出一个友好的界面。系统中涉及到的重要的信息数据要妥善的保存,系统需要提供方便的手段供系统维护人员进行数据备份,日常安全管理,系统意外崩溃时数据的恢复等工作。2.3 可行性分析整个系统设计方案的可行性分析有以下三个方面。1.技术可行性:目前对于一般计算机软硬件都能满足系统开发要求。开发环境采用JSP,数据库采用My SQL。(1)JSP是一种建立在Servlet规范提供的功能之上的动态网页技术,是在通常的网页文件中嵌入脚本代码,用于产生动态内容。 1)JSP具有一次编译,到处运行的特点。2)JSP系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。3)JSP具有多样化和功能强大的开发工具支持。能把界面设计和程序设计分离,复用性和维护性得到了提高。 (2)维护的工作方便,有一定经验的操作人员便可在短暂时间内掌握维护工作。2.经济可行性:本系统只需要配备一台普通计算机并在连网状态下就可实现电子拍卖系统的管理。3.社会可行性:如今社会中电子商务受到了前所未有的重视,关于电子商务的理论体系不断完善,并以全球形势展开商业性质的普及推广,电子商务系统功能及演绎理论能力的不断提高,使电子商务从理论走向实施进而发挥效益成为现实,这些都为电子拍卖系统提供了更为广阔的空间。而另一方面,整个社会诚信体系正在逐步得到完善,因此电子拍卖正在逐步走向规范。2.4 数据管理需求1数据录入的准确性和实时性对于数据输入的准确与否是数据处理的前提条件,输入错误会导致系统的输出不正确或不可用,从而失去了系统工作的意义。数据输入的来源有手工输入和其它系统产生。手工输入需要根据系统界面上的安排使系统具有容错性。而由其它系统生成的数据也要有必要的检查手段,以保证输入数据的准确性。在系统运用中,输入的数据通常都是大量的,因此需要系统具有一定的处理能力,以保证迅速的处理数据。2数据的一致性和完整性由于系统的数据是共享的,在不同的模块或子系统中,文件、报表、数据库都是共享的数据,因此如何保证这些数据的一致性,是系统必须解决的问题。若要解决此种问题,就需要有一定的维护人员去维护数据一致性,在录入数据时控制数据的去向,且对数据库的数据完整性进行严格的约束。各个模块之间对数据库的需求是不同的,但一定要协调好不同需求之间的关系。对于各模块都会用到的表要一致,不能使其冲突。2.5 故障处理需求由于软硬件及系统设计等各种因素,系统在使用过程中难免会发生一些故障。系统应提供对各种故障的一定检测能力,并提供相应的处理手段。对于硬件故障和系统软件故障,应由系统报告及处理;对于操作错误,要求有信息提示及正确方式。2.6 运行环境需求软件方面:MyEclipse开发系统:Windows XP开发语言:JSP数据库:MySQL服务器:tomcat6.0硬件方面:CPU:P(R) 2.5 GHz内存:2.00 GB- 7 -系统总体设计系统总体设计对于总体设计阶段,我们需要阐述系统设计的过程,是整个软件开发过程中的核心部分。整个开发工作都将根据设计方案进行,它决定软件的总体结构。因此,软件的质量取决于软件的总体设计。为了让软件结构能够较为清晰,可采用模块化原理,同时也能容易阅读和理解。由于程序的错误通常出现在相关模块之间的接口中,所以模块化也使软件容易测试和调试。3.1 设计原理采用面向对象方法,面向对象不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学。由于面向对象自下而上的特性,使开发者从问题的局部开始,在开发过程中逐步加深对系统的理解。主要概念有对象、属性、操作、类、继承等,基本原则有抽象、分类、封装、多态等。设计的原则包括以下几点:实用性:实用应该放在首位,是满足用户需求的主要目标,其次考虑美观。方便性:系统应该包含易操作,界面友好,便于使用,有错误提示以及输入简单。适应性:软件能够适应管理变化,适应环境的改变。可扩充性:为了在日后能够对系统进行进一步提升,应考虑是否留有其他功能的接口。3.2 系统模块划分本系统根据功能模块可分为我的购物车,我的账户,商品拍卖,发表留言,帮助中心。购物车:只有竞拍者才有权限进入,在此竞拍者可查看已购入的商品。我的账户:竞拍者和拍卖者可在此页面对用户信息进行修改操作。商品拍卖:只有拍卖者才有权限进入,在此拍卖者可发布商品,查看出售物品以及拍卖成功的商品信息。发表留言:用户可在此页面进行留言操作。帮助中心:为用户提供帮助信息,使其能够更容易运用系统。根据角色划分为竞拍方和拍卖方。竞拍方:对物品进行拍卖竞价操作。拍卖方:发布商品,查看上架商品信息。3.3 系统流程图3.1系统流程图此流程图展示出用户进入系统可以进行的操作,对商品竞价,发布商品,留言,用户资料修改等。3.4 系统功能模块图3.2 功能模块图- 9 -数据库设计数据库设计数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建议中的核心技术。由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程。4.1 数据库需求设计此电子拍卖系统要求数据库必须有以下几个数据表:竞拍者用户表(buyuser):用于存放竞拍者用户信息。拍卖者用户表(selluser):用于存放拍卖者用户信息。购买商品信息(buygoodsinfo):用于存放竞拍者购买获得的商品信息。商品信息(goodsinfo):用于存放拍卖者发布的商品信息。购买信息(leaveword):包含竞拍者在购买物品是显示的物品购买信息。留言信息(appraise):包含用户在留言板上的留言信息。4.2 MySQL管理MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQL AB公司。与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。MySQL的特性只要包括以下几点:1) 为多种编程语言提供了API。这些编程语言包括C、C+、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。2) 支持多线程,充分利用CPU资源。3) 提供TCP/IP、ODBC、和JDBC等多种数据库连接途径。4) 既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。5) 提供用于管理、检查、优化数据库操作的管理工具。6) 优化的SQL查询算法,有效地提高查询速度。4.3 创建数据库打开MySQL界面,利用语句CREATE DATABASE onlinesalesystem,创建一个名为“onlinesalesystem”的数据库。4.4 关系E-R图设计E-R方法概念:E-R方法是“实体-联系方法”(Entity-Relationship Approach)的简称。它是描述现实世界概念结构模型的有效方法。是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别于有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。E-R图概念:E-R图也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。本电子拍卖系统包含的实体有竞拍者,拍卖者,商品信息,已购商品信息,留言信息。于是通过这几个实体来分布进行E-R图的设计。图4.1 用户实体图图4.2 已购商品实体图图4.3 发布商品信息实体图图4.4 留言板信息实体图根据上述的几个实体类,以及这些实体类之间的关系可以得到总体的E-R图。图4.5 系统基本E-R图4.5 数据库表设计根据E-R图开始进行数据库表设计。1.数据库表设计的原则:1)标准化和规范化。数据的标准化有助于消除数据库中的数据冗余。标准化有好几种形式,但Third Normal Form(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡。2)数据驱动。采用数据驱动而非硬编码的方式,许多策略变更和维护都会方便得多,大大增强系统的灵活性和扩展性。3)考虑各种变化。在设计数据库的时候考虑到哪些数据字段将来可能会发生变更。4)每个表中都应该添加的3 个有用的字段。5)对地址和电话采用多个字段。描述街道地址就短短一行记录是不够的。 Address_Line1、Address_Line2 和Address_Line3 可以提供更大的灵活性。6)使用角色实体定义属于某类别的列。在需要对属于特定类别或者具有特定角色的事物做定义时,可以用角色实体来创建特定的时间关联关系,从而可以实现自我文档化。7)选择数字类型和文本类型尽量充足。8)增加删除标记字段。2.E-R图向关系模型的转换E-R图向关系模型的转换要解决的问题是如何将实体型和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码。关系模型的逻辑结构是一组关系模式的集合。E-R图则是由实体型、实体的属性和实体型之间的联系3个要素组成的。所以将E-R图转换为关系模型实际上就是要将实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则:1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的友以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码。如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码。3)一个m:n联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分。5)具有相同码的关系模式可合并。3.利用SQL语句建立数据库表。首先use onlinesalesystem;然后输入SQL语句,使用CREATE TABLE语句格式来建立下列6个数据库表竞拍者用户表完成之后输入desc BuyUser显示:图4.6 竞拍者用户信息表建立拍卖者用户表完成之后输入desc SellUser显示:图4.7拍卖者用户信息表建立商品信息表完成之后输入desc GoodsInfo显示:图4.8 商品信息表建立购得商品信息表完成之后输入desc BuyGoodsInfo显示:图4.9 购得商品信息表建立评价信息表完成之后输入desc Appraise显示:图4.10 评价信息表建立购买信息表完成之后输入desc LeaveWord显示:图4.11 购买信息表4.6 数据库连接由于本系统采用JSP开发,所以数据库连接技术为JDBC(Java Database Connectivity)。JDBC是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。在本系统dataaccess包下建立一个名为SqlConnection的JAVA类,在此类里面有如下代码来完成数据库连接工作。public Connection sqlCon() try /Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver); Class.forName(com.mysql.jdbc.Driver); con = DriverManager.getConnection( jdbc:mysql:/127.0.0.1:3306/onlinesalesystem?useUnicode=true&characterEncoding=GBK, root, 123456); catch (Exception ce) ce.printStackTrace(); return con; - 17 -系统详细设计和实现系统详细设计和实现在此阶段需要做的就是整体内容实现过程。包括页面设计,详细功能设计以及展示效果。也是前台和后台交互的实现。5.1 物品购买功能实现对商品进行竞价,其功能实现代码详见附录,功能流程图如下:图5.1 竞价功能实现流程图5.2 前台页面设计1)首页。首页index.jsp中包含头部分和尾部分以及中间页面,头部分添加Header.jsp,尾部分添加Footer.jsp,中间位图片格式。Header.jsp中包含有框架中涉及到的链接,如我的购物车,我的账户,商品拍卖,发表留言,帮助中心以及搜索功能。图5.2 首页头部展示Footer.jsp中包含一些网站信息和制作者联系方式等。图5.3 首页底部展示2)我的购物车页面。购物车页面在buyCar.jsp中代码实现,用于展示竞拍者所购买获得的商品列表。如下面图片显示。图5.4购物车内容展示3)我的账户页面。此页面包含查看,修改用户信息。如图所示:图5.5 账户修改密码展示4)商品拍卖页面此页面用于拍卖者发布商品以及查看拍卖商品资料。如图所示:图5.6 发布商品页面展示图5.7 拍卖物品展示5)发表留言页面用户开在此页面发表留言,以及查看所有留言。如图所示:图5.8 发表留言展示图5.9 留言内容展示6)帮助中心页面此页面包含有一些方便用户操作网站的信息。7)登陆页面在此登陆用户,分两种形式登陆,竞拍者身份和拍卖者身份图5.10登陆页面展示8)注册页面此页面显示表单,用于非会员用户注册信息提交。图5.11 注册页面展示- 21 -系统测试系统测试软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。6.1软件测试目的软件测试的目的是发现软件中的错误和缺陷,并加以纠正。应该排除对测试的错误观点,设计合适的测试用例,用尽可能少的测试用例,来发现尽可能多的软件错误。6.2 软件测试的基本原则1)软件开发人员即程序员应当避免测试自己的程序或者本组开发的功能模块。2)应尽早地和不断地进行软件测试。3)对测试用例要有正确的态度。4)一定要充分注意软件测试中的群集现象。5)严格执行测试计划,排除测试的随意性。6)应当对每一个测试结果进行全面检查。7)妥善保存测试用例、测试计划、测试报告和最终分析报告,以备回归测试和维护之用。6.3 测试方法由于电子拍卖系统凸显视觉效果,所以主要选用黑盒测试。黑盒测试可用于各种测试,它试图发现以下类型的错误:1)不正确或遗漏的功能。2)接口错误,如输入输出参数的个数、类型等。3)数据结构错误或外部信息(如外部数据库)访问错误。4)性能错误。5)初始化和终止错误。6.4 功能模块测试进入系统页面登陆各功能板块,根据页面提示功能进行测试。测试功能是否达到要求以及各个模块之间是否连接正常。6.5 测试举例通过以下表格形式列举几个测试用例:序号测试项输入说明(操作)输出说明(预期结果)1用户登录用户的用户名登录,输入密码按“登录”钮。1、 若输入数据正确,则登录到网站首页2、 密码错误或用户名不存在,系统将给出提示 2用户注册按要求填入注册信息1、点击提交后,提示注册成功2、能成功用新用户登录3商品搜索1、输入商品名称2、直接点击搜索1、按“搜索”钮后,页面显示查询到的商品2、按“搜索”钮后,页面显示所有商品4用户密码修改用户密码,新密码不能为空能成功用新密码进行登录5在线留言填写内容,点击提交按钮输入内容,点击提交后,提示留言成功6商品发布按要求填写商品信息点击提交按钮后提示上传商品成功7购买商品选择商品,点击购买,填写购买信息点击提交后,提示竞价拍买信息已成功发送8用户权限1、竞拍者身份登录查看商品拍卖页面2、拍卖者身份登录查看我的购物车页面1、自动跳转到登录页面,并提示以拍卖者身份进入2、弹出对话框显示无权限进入,点击“确定”跳转到登录页面6.6 性能分析本电子拍卖系统采用J2EE下的三层结构,为表现层、业务逻辑层和数据服务层。三层体系将业务规则、数据访问等工作放到中间层处理,客户端不直接与数据库交互,而是通过控制器与中间层建立连接,再由中间层与数据库交互。该界面方便用户对系统的操作使用,并且应该符合用户以往的操作习惯或者大部分用户的操作习惯,只有这样才能使用户充分发挥主观能动性更快、更好的学习使用该系统。6.7 测试总结本电子拍卖系统的基本功能已实现,功能有待加强,但是页面的美工方面不足,在维护系统安全性、实现数据备份等方面还需要进一步完善。- 23 -结论结 论本电子拍卖管理系统采用了JSP编程,因此具有较好的移植性、可扩充性性。由于JSP支持多语言编写和混合编写,所以构建电子拍卖管理系统不仅缩短了系统的开发周期,提高了开发的效率同时方便用户使用。通过电子拍卖管理系统模块的设计与实现,使我对软件编程的思想有了更加深刻的理解,尤其是对需求分析,总体设计和系统的详细设计有了更深刻的认识。对软件测试的方法、手段也有了一定的掌握,同时对电子拍卖管理所应具备的功能有了新的认识。整个开发过程就是学习的过程,也是发现问题、分析问题、解决问题的过程。经过这段时间的认真学习,极大拓宽了知识面,受益匪浅。对JSP这种开发语言的认识也从开始的浅显到现在的基本掌握并灵活使用,对于MySQL的基本原理和应用方法也有了更深的认识。在系统的开发过程中主要解决了六个问题:电子拍卖管理系统的用户登录管理,物品管理,用户管理管理,评价信息管理。对于这几方面功能的实现方法有了全面的认识,并成功实现了各项功能。但是,诸如系统的安全问题、负载能力和容错能力的改善问题上有待更进一步的推敲和改进。- 25 -致谢致 谢通过这次将近两个月的毕业设计,使我收获了很多东西。不但学到了很多有用的知识,还学到了很多从书本上无法学习到的东西,如编程经验、调错能力、理论与实际相结合、独立动手能力等等,开阔了视野,增长了知识,锻炼了自己,认识到了自己的不足。通过一段时间的努力终于克服了困难,完成了自己的作品。知识的增长果然是个艰苦的过程。指导老师田杰老师给予了我悉心的指导,在整个毕业设计的过程中,田老师从方方面面都给予帮助和支持。从毕业设计任务的确定到最终论文的审阅批改,在每一细节上,田老师都细心的指导,设计中遇到的许多问题,也是在田老师的帮助下得以解决,使毕业设计能够顺利完成。在此表示衷心的感谢。所有老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们一丝不苟的教导和不拘一格的思路给予我无尽的启迪。同时也非常感谢我身边的几位同学,他们同样给予了我很大的帮助。在这里对所有帮助过我的人报以最真挚的感谢。- 1 -参考文献参考文献1 钱乐秋等. 软件工程清华大学出版社20072 孙鑫. JAJA Web开发详解电子工业出版社20093 王珊等. 数据库系统概述高等教育出版社20064 孙伟琴等. Tomcat与JSP Web开发技术详解电子工业出版社20035 光军,胡波. JSP应用开发实例讲解北京航空航天大学出版社20026 肖来元,吴涛等. 软件项目管理与案例分析清华大学出版社 20097 谭浩强等. 基于Web标准的网页设计与制作清华大学出版社20098 福塔著,刘晓霞,钟鸣译. MySQL必知必会人民邮电出版社2009- 3 -附录附 录if (卖.equals(Userdegree) / 用户以卖者身份登陆session.setAttribute(buyinfo, 您还没有权限竟价购买商品!);response.sendRedirect(request.getContextPath() + /BuyGoods.jsp); else / 用户以买者身份登陆float price = 0;/ 保存商品购买表中的临时最高价格int shuliang = 0;/ 保存商品信息表中的临时商品数量float beginprice = 0;/ 保存商品信息表中的临时的起始价格/ 设置时间Date d = new Date();SimpleDateFormat f = new SimpleDateFormat(yyyy-MM-dd);String date = f.format(d);System.out.println(date);long id = Long.parseLong(String) session.getAttribute(selectGoodsId);/ 获得商品IDlong userid = Long.parseLong(String) session.getAttribute(loginedUserId);/ 获取用户IDString sql = select BuyPrice from buygoodsinfo where Fk_GoodsId=+ id + ;/ 查询商品购买表中的最高竟价String sqlcount = select BeginPrice,GoodsCount from goodsinfo where pkid=+ id + ;/ 查询商品信息表中商品的数量ResultSet rs1 = consql.lookfor(sqlcount);ResultSet rs = consql.lookfor(sql);try while (rs1.next() beginprice = rs1.getFloat(1);/ 获取商品信息表中的起始价格shuliang = rs1.getInt(2);/ 获取商品信息表中商品的数量while (rs.next() price = rs.getFloat(1);/ 获取商品购买表中买者的最高竟价 catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace(); finally try consql.sqlCon().close(); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();float money = Float.parseFloat(request.getParameter(txtprice);/ 购买价格if (money price & money beginprice) / 竟价成功int count = Integer.parseInt(request.getParameter(txtbuycount);/ 购买数量if (count = shuliang) String address = request.getParameter(txtaddress);String sendFin = request.getParameter(txtsendFin);/ 检查数据库中是否存在对当前用户正在购买的商品信息String sqlexists = select * from buygoodsinfo where Fk_GoodsId=+ id + ;ResultSet rsex = consql.lookfor(sqlexists);try if (rsex.next() = true) / 更新记录String sqlupdate = update buygoodsinfo set Fk_BuUserId=+ userid+ ,BuyPrice=+ money+ ,BuyCount=+ count+ ,BuyTime=+ date+ ,SendAddress=+ address+ ,SendFashion=+ sendFin+ where Fk_GoodsId= + id + ;System.out.println(sqlupdate);boolean tag = consql.conupdate(sqlupdate);if (tag = false) / 操作失败session.setAttribute(buyinfo, 竟价购买操作失败!);response.sendRedirect(request.getContextPath()+ /BuyGoods.jsp); else / 操作成功session.setAttribute(buyinfo,您的竟价拍买信息已成功发送!);response.sendRedirect(request.getContextPath()+ /BuyGoods.jsp); else / 保存新记录String sqlinsert = insert into buygoodsinfo (FK_BuUserId,FK_GoodsId,BuyCount,BuyTime,BuyPrice,SendAddress,SendFashion,isSucc) values(+ userid+ ,+ id+ ,+ count+ ,+ date+ ,+ money+ ,+ address+ ,+ sendFin+ ,+ 1+ );System.out.println(sqlinsert);boolean tag = consql.conupdate(sqlinsert);if (tag = false) / 操作失败session.setAttribute(buyinfo,
展开阅读全文