还剩38页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课题电子拍卖系统的设计与实现姓名***学号***班级***学院***指导教师***完成时间摘要本电子拍卖系统以WindowsXP为开发平台,MyEclipse为开发工具,MySQL为后台数据库,利用JSP技术和sevlet技术来实现动态网页制作从技术和设计两方面论述系统的设计和开发过程在技术上,深入探讨电子拍卖系统工作原理,分析拍卖流程在设计实现上,以拍卖物品管理,卖方拍卖项目管理,买方拍卖项目管理,用户管理等主要模块来实现其功能通过软件开发流程,前台开发和后台开发同时结合,以功能实现为原则,利用所学知识分部对各个模块进行设计,最终完成了整个系统的实现本篇论文通过几个方面阐述电子拍卖系统全过程关键字JSP,电子拍卖,MySQLAbstractTheelectronicauctionsystemtoWindowsXPasadevelopmentplatformtheMyEclipsedevelopmenttoolsMySQLback-enddatabaseusingJSPtechnologyandsevlettechnologytoachieveadynamicwebpageproduction.Discussestwoaspectsoftechnologyanddesignthesystemdesignanddevelopmentprocess.Technicallythedepthstudyoftheelectronicauctionsystemworkstheanalysisoftheauctionprocess.ToauctionmanagementonthedesignandimplementationtheVendorProjectManagementauctionthebuyerauctionprojectmanagementusermanagementmoduletoachieveitsfunction.Throughthesoftwaredevelopmentprocessthefront-andback-officedevelopmentatthesametimethefeatureisimplementedastheknowledgesegmentdesignforeachmodulethefinalcompletionoftheentiresystemtoachieve.Inthisthesisseveralaspectsthewholeprocessoftheelectronicauctionsystem.Keywords JSPElectronicauctionMySQL目录TOC\o1-3\h\z\u引言-1-系统概述-2-
1.1课题来源与意义-2-
1.2国内外发展状况-2-
1.3系统开发环境及技术介绍-3-
1.
3.1JSP简介-3-
1.
3.2MySQL简介-4-
1.
3.3Tomcat简介-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.2MySQL管理-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-引言随着社会科技的不断发展和人们购物意识的不断革新,网上购物成为一种新型的购物方式,正逐渐被人们所接受和认可而作为网上购物的方式之一的电子拍卖形式给人们的购物带来一种全新的体验人们可通过网站发布自己想要拍卖的商品信息,也可以通过竞价去购买自己想要的商品即具有一般购物网站的成本低廉,方式灵活,运行快捷等的特点,更具有自由竞争和公平合理的特性本电子拍卖系统是传统拍卖形式在线实现通过网络实施的价格谈判交易活动,即利用互联网在网站上公开发布将要招标的物品或者服务的信息,通过竞争投标的方式将它出售给出价最高或最低的投标者其实质是以竞争价格为核心,建立生产者和消费者之间的交流与互动机制,共同确定价格和数量,从而达到均衡的一种市场经济过程它通过网络将过去少数人才能参与的贵族式的物品交换形式,变成每一位网民都可以加入其中的平民化交易方式网上拍卖不仅是网络时代消费者定价原则的体现,更重要的是拍卖网站营造了一个供需有效集结的市场,成为消费者和生产商各取所需的场所,因此是一种典型的中介型电子商务形式相对与传统拍卖,网上拍卖的特点在于每个商家都可以制定一套适合自己的拍卖规则,并且通过网上拍卖还可以使定价达到更准确的水平,同时能够参与拍卖的人的范围也大大增加了系统也存在缺陷与不足,首先系统还没有提供与电子银行的接口,如果提供将可以通过电子银行的操作,可以实现从买家对卖家的自动付款;其次本系统没有提供如个人身份认证、信用管理等细节问题实现系统概述
1.1课题来源与意义随着网络技术的不断发展和人们购物意识的不断革新,网上购物成为一种新型的购物方式,正逐渐被人们所接受和认可而网上购物的方式之一的电子拍卖形式给人们的购物带来另一种全新的体验人们可以通过网站发出自己想拍卖的物品的信息,也可以通过竞价购买自己想要的物品即具有一般购物网站的成本低廉,方式灵活,运行快捷等的特点,更具有自由竞争和公平合理的特性拍卖网站的优势在于其强大的网络效应——用的人越多,网站就越有用”Ebay的PierreOmidyar如是说这也意味着在拍卖业中的先进入优势要比在网上零售业要大这就是当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全称是JavaServerPages,翻译过来可以称为“基于JAVA的服务器端动态页面技术”它由SunMicrosystems公司在1999年6月推出,近年来已发展成为一种最流行的动态网页开发技术JSP在HTML代码中嵌入Java程序片段,并使用各种JSP指令,构成了JSP页面这种页面可以完成操作数据库、上传文件等复杂的逻辑处理功能另外,还通过支持JavaBean实现了功能扩展
1.3系统开发环境及技术介绍本系统采用Brower/Sever架构,以WindowsXP为开发平台,MyEclipse为开发工具,MySQL为后台数据库,采用JSP作为主要的程序设计语言,MySQL作为后台数据库的管理信息系统Tomcat作为WEB服务器承载
1.
3.1JSP简介JSP是JavaServerPage(Java服务器页面)的简称,它是由SunMicrosystems公司倡导,多家公司参与一起建立的一种动态网页技术标准,主要用于开发动态网页JSP技术让动态网页的编写更加容易、功能更强,可移植性、可扩展性更好总结起来,它的特点如下1)将内容的生成和显示进行分离使用JSP技术,Web页面开发人员可以使用HTML或者XML标识来设计和格式化最终页面使用JSP标识或者小脚本来生成页面上的动态内容生成内容的逻辑被封装在标识JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行如果核心逻辑被封装在标识和Beans中,那么其他人,如Web管理人员和页面设计者,能够编辑和使用JSP页面,而不影响内容的生成在服务器端,JSP引擎解释JSP标识和小脚本,生成所请求的内容2)强调可重用的组件绝大多数JSP页面依赖于可重用的,跨平台的组件(JavaBeans或者EnterpriseJavaBeansTM组件)来执行应用程序所要求的更为复杂的处理开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡3)采用标识简化页面开发Web页面开发人员不会都是熟悉脚本语言的编程人员JavaServerPage技术封装了许多功能,这些功能是在易用的、与JSP相关的XML标识中进行动态内容生成所需要的标准的JSP标识能够访问和实例化JavaBeans组件,设置或者检索组件属性,下载Applet,以及执行用其他方法更难于编码和耗时的功能4)一次编写,处处运行由于JSP页面的内置脚本语言是基于Java编程语言的,而且所有的JSP页面都要被转换成JavaServlet,所以JSP页面就具有Java技术所有的好处,包括健壮的存储管理、安全性以及跨平台性
1.
3.2MySQL简介MySQL是瑞典的MySQLAB公司开发的一个可用于各种流行操作系统平台的关系数据库系统,它具有客户机/服务器体系结构的分布式数据库管理系统MySQL完全适用于网络,用其建造的数据库可在因特网上的任何地方访问,因此,可以和网络上任何地方的任何人共享数据库MySQL具有功能强、使用简单、管理方便、运行速度快、可靠性高、安全保密性强等优点MySQL用C和C++编写,它可以工作在许多平台(Unix,Linux,Windows)上,提供了针对不同编程语言CC++JAVA等的API函数;使用核心线程实现多线程,能够很好的支持多CPU;提供事务和非事务的存储机制;快速的基于线程的内存分配系统;MySQL采用双重许可,用户可以在GNU许可条款下以免费软件或开放源码软件的方式使用MySQL软件,也可以从MySQLAB公司获得正式的商业许可除了以上特点,MySQL还有一个最大的特点,那就是在诸如UNIX这样的操作系统上,它是免费的,可从因特网上下载其服务器和客户机软件并且还能从因特网上得到许多与其相配的第三方软件或工具而在Windows系统上,其客户机程序和客户机程序库是免费的
1.
3.3Tomcat简介Tomcat是Apache软件基金会(ApacheSoftwareFoundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的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,1JDBCRealm,这个Realm将用户信息存在数据库里,通过JDBC获得用户信息来进行验证2JNDIRealm,用户信息存在基于LDAP的服务器里,通过JNDI获取用户信息3MemoryRealm,用户信息存在一个xml文件里面,上面讲的manager应用验证用户时即使用此种Realm通过Realm我们可以方便地对访问某个应用的客户进行验证系统需求分析
2.1功能需求用户打开系统登录页面,通过登录之后才有一定的权限,登录之后,根据相应的身份以及权限,就可以在对应的界面进行相应的操作了
1.竞拍方在线修改对个人信息进行修改在线提问可在留言板进行留言提问在线竞价买方可对商品进行竞拍购买操作
2.拍卖方发布拍卖项目发布所要拍卖商品的信息制定规则可对拍卖物品进行规则制定,如起始价,价格阶梯,拍卖时间段在线留言可在系统留言板上留言已经查看留言拍卖项目报告拍卖成功后系统自动生成拍卖信息报告拍卖物品管理可对拍卖的物品进行相关操作
2.2性能需求1.准确性和及时性在系统设计和开发过程中,不仅要确保本次数据处理结果的准确性,还要考虑本次数据处理结果对整个系统的影响,从而保证整个系统的准确性系统在日常处理过程中的响应速度要达到实时要求,以及实时反馈信息在系统设计和开发过程中,还要充分考虑系统当前和将来可能承受的工作量,使系统处理能力和响应时间能够满足用户对信息处理的要求2.系统的可扩充性在系统开发过程中,应该充分考虑将来的可扩充性这就需要系统提供足够的方式进行功能调整和扩充为了实现这一点,应通过系统的开放性来完成,即系统应是一个开放的系统,只要符合一定的规范,就可以简单的加入和减少系统的模块、配置系统的硬件通过软件的修补、替换完成系统的升级和更新可以说,具有良好的扩展性的软件才是优秀的软件3.系统的易用性和易维护性为了让系统使用效率高,用户可以很快的使用网上竞标系统,而不必专门去学习该软件的使用因此系统应该提供良好的用户接口,易用的人机交互界面要实现这一点,就要求系统设计出一个友好的界面系统中涉及到的重要的信息数据要妥善的保存,系统需要提供方便的手段供系统维护人员进行数据备份,日常安全管理,系统意外崩溃时数据的恢复等工作
2.3可行性分析整个系统设计方案的可行性分析有以下三个方面
1.技术可行性目前对于一般计算机软硬件都能满足系统开发要求开发环境采用JSP,数据库采用MySQL1JSP是一种建立在Servlet规范提供的功能之上的动态网页技术,是在通常的网页文件中嵌入脚本代码,用于产生动态内容1)JSP具有一次编译,到处运行的特点2)JSP系统的多平台支持基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展3)JSP具有多样化和功能强大的开发工具支持能把界面设计和程序设计分离,复用性和维护性得到了提高2维护的工作方便,有一定经验的操作人员便可在短暂时间内掌握维护工作
2.经济可行性本系统只需要配备一台普通计算机并在连网状态下就可实现电子拍卖系统的管理
3.社会可行性如今社会中电子商务受到了前所未有的重视关于电子商务的理论体系不断完善并以全球形势展开商业性质的普及推广,电子商务系统功能及演绎理论能力的不断提高使电子商务从理论走向实施进而发挥效益成为现实,这些都为电子拍卖系统提供了更为广阔的空间而另一方面,整个社会诚信体系正在逐步得到完善,因此电子拍卖正在逐步走向规范
2.4数据管理需求1.数据录入的准确性和实时性对于数据输入的准确与否是数据处理的前提条件,输入错误会导致系统的输出不正确或不可用,从而失去了系统工作的意义数据输入的来源有手工输入和其它系统产生手工输入需要根据系统界面上的安排使系统具有容错性而由其它系统生成的数据也要有必要的检查手段,以保证输入数据的准确性在系统运用中,输入的数据通常都是大量的,因此需要系统具有一定的处理能力,以保证迅速的处理数据2.数据的一致性和完整性由于系统的数据是共享的,在不同的模块或子系统中,文件、报表、数据库都是共享的数据,因此如何保证这些数据的一致性,是系统必须解决的问题若要解决此种问题,就需要有一定的维护人员去维护数据一致性,在录入数据时控制数据的去向,且对数据库的数据完整性进行严格的约束各个模块之间对数据库的需求是不同的,但一定要协调好不同需求之间的关系对于各模块都会用到的表要一致,不能使其冲突
2.5故障处理需求由于软硬件及系统设计等各种因素,系统在使用过程中难免会发生一些故障系统应提供对各种故障的一定检测能力,并提供相应的处理手段对于硬件故障和系统软件故障,应由系统报告及处理;对于操作错误,要求有信息提示及正确方式
2.6运行环境需求软件方面MyEclipse开发系统WindowsXP开发语言JSP数据库MySQL服务器tomcat
6.0硬件方面CPU PR
2.5GHz内存
2.00GB系统总体设计对于总体设计阶段,我们需要阐述系统设计的过程,是整个软件开发过程中的核心部分整个开发工作都将根据设计方案进行,它决定软件的总体结构因此,软件的质量取决于软件的总体设计为了让软件结构能够较为清晰,可采用模块化原理,同时也能容易阅读和理解由于程序的错误通常出现在相关模块之间的接口中,所以模块化也使软件容易测试和调试
3.1设计原理采用面向对象方法,面向对象不仅是一些具体的软件开发技术与策略,而且是一整套关于如何看待软件系统与现实世界的关系,用什么观点来研究问题并进行问题求解,以及如何进行软件系统构造的软件方法学由于面向对象自下而上的特性,使开发者从问题的局部开始,在开发过程中逐步加深对系统的理解主要概念有对象、属性、操作、类、继承等,基本原则有抽象、分类、封装、多态等设计的原则包括以下几点实用性实用应该放在首位,是满足用户需求的主要目标,其次考虑美观方便性系统应该包含易操作,界面友好,便于使用,有错误提示以及输入简单适应性软件能够适应管理变化,适应环境的改变可扩充性为了在日后能够对系统进行进一步提升,应考虑是否留有其他功能的接口
3.2系统模块划分本系统根据功能模块可分为我的购物车,我的账户,商品拍卖,发表留言,帮助中心购物车只有竞拍者才有权限进入,在此竞拍者可查看已购入的商品我的账户竞拍者和拍卖者可在此页面对用户信息进行修改操作商品拍卖只有拍卖者才有权限进入,在此拍卖者可发布商品,查看出售物品以及拍卖成功的商品信息发表留言用户可在此页面进行留言操作帮助中心为用户提供帮助信息,使其能够更容易运用系统根据角色划分为竞拍方和拍卖方竞拍方对物品进行拍卖竞价操作拍卖方发布商品,查看上架商品信息
3.3系统流程图
3.1系统流程图此流程图展示出用户进入系统可以进行的操作,对商品竞价,发布商品,留言,用户资料修改等
3.4系统功能模块图
3.2功能模块图数据库设计数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建议中的核心技术由于数据库应用系统的复杂性,为了支持相关程序运行,数据库设计就变得异常复杂,因此最佳设计不可能一蹴而就,而只能是一种“反复探寻,逐步求精”的过程,也就是规划和结构化数据库中的数据对象以及这些数据对象之间关系的过程
4.1数据库需求设计此电子拍卖系统要求数据库必须有以下几个数据表竞拍者用户表buyuser用于存放竞拍者用户信息拍卖者用户表selluser用于存放拍卖者用户信息购买商品信息buygoodsinfo用于存放竞拍者购买获得的商品信息商品信息goodsinfo用于存放拍卖者发布的商品信息购买信息leaveword包含竞拍者在购买物品是显示的物品购买信息留言信息appraise包含用户在留言板上的留言信息
4.2MySQL管理MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司与其他的大型数据库例如Oracle、DB
2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度对于一般的个人使用者和中小型企业来说,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界面,利用语句CREATEDATABASEonlinesalesystem创建一个名为“onlinesalesystem”的数据库
4.4关系E-R图设计E-R方法概念E-R方法是“实体-联系方法”(Entity-RelationshipApproach)的简称它是描述现实世界概念结构模型的有效方法是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别于有关实体型连接起来,同时在无向边旁标上联系的类型(1:11:n或m:n)E-R图概念E-R图也称实体-联系图EntityRelationshipDiagram,提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型本电子拍卖系统包含的实体有竞拍者,拍卖者,商品信息,已购商品信息,留言信息于是通过这几个实体来分布进行E-R图的设计图
4.1用户实体图图
4.2已购商品实体图图
4.3发布商品信息实体图图
4.4留言板信息实体图根据上述的几个实体类,以及这些实体类之间的关系可以得到总体的E-R图图
4.5系统基本E-R图
4.5数据库表设计根据E-R图开始进行数据库表设计
1.数据库表设计的原则1)标准化和规范化数据的标准化有助于消除数据库中的数据冗余标准化有好几种形式,但ThirdNormalForm(3NF)通常被认为在性能、扩展性和数据完整性方面达到了最好平衡2)数据驱动采用数据驱动而非硬编码的方式,许多策略变更和维护都会方便得多,大大增强系统的灵活性和扩展性3)考虑各种变化在设计数据库的时候考虑到哪些数据字段将来可能会发生变更4)每个表中都应该添加的3个有用的字段5)对地址和电话采用多个字段描述街道地址就短短一行记录是不够的Address_Line
1、Address_Line2和Address_Line3可以提供更大的灵活性6)使用角色实体定义属于某类别的列在需要对属于特定类别或者具有特定角色的事物做定义时,可以用角色实体来创建特定的时间关联关系,从而可以实现自我文档化7)选择数字类型和文本类型尽量充足8)增加删除标记字段
2.E-R图向关系模型的转换E-R图向关系模型的转换要解决的问题是如何将实体型和实体间的联系转换为关系模式,如何确定这些关系模式的属性和码关系模型的逻辑结构是一组关系模式的集合E-R图则是由实体型、实体的属性和实体型之间的联系3个要素组成的所以将E-R图转换为关系模型实际上就是要将实体型、实体的属性和实体型之间的联系转换为关系模式,这种转换一般遵循如下原则1)一个11联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并如果转换为一个独立的关系模式,则与该联系相连的各实体的友以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选码如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性2)一个1n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为n端实体的码3)一个m n联系转换为一个关系模式与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合4)3个或3个以上实体间的一个多元联系可以转换为一个关系模式与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,各实体的码组成关系的码或关系码的一部分5)具有相同码的关系模式可合并
3.利用SQL语句建立数据库表首先useonlinesalesystem;然后输入SQL语句,使用CREATETABLE语句格式来建立下列6个数据库表竞拍者用户表完成之后输入descBuyUser显示图
4.6竞拍者用户信息表建立拍卖者用户表完成之后输入descSellUser显示图
4.7拍卖者用户信息表建立商品信息表完成之后输入descGoodsInfo显示图
4.8商品信息表建立购得商品信息表完成之后输入descBuyGoodsInfo显示图
4.9购得商品信息表建立评价信息表完成之后输入descAppraise显示图
4.10评价信息表建立购买信息表完成之后输入descLeaveWord显示图
4.11购买信息表
4.6数据库连接由于本系统采用JSP开发,所以数据库连接技术为JDBCJavaDatabaseConnectivityJDBC是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序在本系统dataaccess包下建立一个名为SqlConnection的JAVA类,在此类里面有如下代码来完成数据库连接工作publicConnectionsqlCon{try{//Class.forNamecom.microsoft.jdbc.sqlserver.SQLServerDriver;Class.forNamecom.mysql.jdbc.Driver;con=DriverManager.getConnectionjdbc:mysql://
127.
0.
0.1:3306/onlinesalesystemuseUnicode=truecharacterEncoding=GBKroot123456;}catchExceptionce{ce.printStackTrace;}returncon;}系统详细设计和实现在此阶段需要做的就是整体内容实现过程包括页面设计,详细功能设计以及展示效果也是前台和后台交互的实现
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注册页面展示系统测试软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估执行测试用例后,需要跟踪故障,以确保开发的产品适合需求
6.1软件测试目的软件测试的目的是发现软件中的错误和缺陷,并加以纠正应该排除对测试的错误观点,设计合适的测试用例,用尽可能少的测试用例,来发现尽可能多的软件错误
6.2软件测试的基本原则1)软件开发人员即程序员应当避免测试自己的程序或者本组开发的功能模块2)应尽早地和不断地进行软件测试3)对测试用例要有正确的态度4)一定要充分注意软件测试中的群集现象5)严格执行测试计划,排除测试的随意性6)应当对每一个测试结果进行全面检查7)妥善保存测试用例、测试计划、测试报告和最终分析报告,以备回归测试和维护之用
6.3测试方法由于电子拍卖系统凸显视觉效果,所以主要选用黑盒测试黑盒测试可用于各种测试,它试图发现以下类型的错误1)不正确或遗漏的功能2)接口错误,如输入输出参数的个数、类型等3)数据结构错误或外部信息(如外部数据库)访问错误4)性能错误5)初始化和终止错误
6.4功能模块测试进入系统页面登陆各功能板块,根据页面提示功能进行测试测试功能是否达到要求以及各个模块之间是否连接正常
6.5测试举例通过以下表格形式列举几个测试用例序号测试项输入说明(操作)输出说明(预期结果)用户登录用户的用户名登录,输入密码按“登录”钮若输入数据正确,则登录到网站首页密码错误或用户名不存在,系统将给出提示用户注册按要求填入注册信息
1、点击提交后,提示注册成功
2、能成功用新用户登录商品搜索
1、输入商品名称
2、直接点击搜索
1、按“搜索”钮后,页面显示查询到的商品
2、按“搜索”钮后,页面显示所有商品用户密码修改用户密码,新密码不能为空能成功用新密码进行登录在线留言填写内容,点击提交按钮输入内容,点击提交后,提示留言成功商品发布按要求填写商品信息点击提交按钮后提示上传商品成功购买商品选择商品,点击购买,填写购买信息点击提交后,提示竞价拍买信息已成功发送用户权限
1、竞拍者身份登录查看商品拍卖页面
2、拍卖者身份登录查看我的购物车页面
1、自动跳转到登录页面,并提示以拍卖者身份进入
2、弹出对话框显示无权限进入,点击“确定”跳转到登录页面
6.6性能分析本电子拍卖系统采用J2EE下的三层结构,为表现层、业务逻辑层和数据服务层三层体系将业务规则、数据访问等工作放到中间层处理,客户端不直接与数据库交互,而是通过控制器与中间层建立连接,再由中间层与数据库交互该界面方便用户对系统的操作使用,并且应该符合用户以往的操作习惯或者大部分用户的操作习惯,只有这样才能使用户充分发挥主观能动性更快、更好的学习使用该系统
6.7测试总结本电子拍卖系统的基本功能已实现,功能有待加强,但是页面的美工方面不足,在维护系统安全性、实现数据备份等方面还需要进一步完善结论本电子拍卖管理系统采用了JSP编程,因此具有较好的移植性、可扩充性性由于JSP支持多语言编写和混合编写,所以构建电子拍卖管理系统不仅缩短了系统的开发周期,提高了开发的效率同时方便用户使用通过电子拍卖管理系统模块的设计与实现,使我对软件编程的思想有了更加深刻的理解,尤其是对需求分析,总体设计和系统的详细设计有了更深刻的认识对软件测试的方法、手段也有了一定的掌握,同时对电子拍卖管理所应具备的功能有了新的认识整个开发过程就是学习的过程,也是发现问题、分析问题、解决问题的过程经过这段时间的认真学习,极大拓宽了知识面,受益匪浅对JSP这种开发语言的认识也从开始的浅显到现在的基本掌握并灵活使用,对于MySQL的基本原理和应用方法也有了更深的认识在系统的开发过程中主要解决了六个问题电子拍卖管理系统的用户登录管理,物品管理,用户管理管理,评价信息管理对于这几方面功能的实现方法有了全面的认识,并成功实现了各项功能但是,诸如系统的安全问题、负载能力和容错能力的改善问题上有待更进一步的推敲和改进致谢通过这次将近两个月的毕业设计使我收获了很多东西不但学到了很多有用的知识,还学到了很多从书本上无法学习到的东西,如编程经验、调错能力、理论与实际相结合、独立动手能力等等,开阔了视野,增长了知识,锻炼了自己,认识到了自己的不足通过一段时间的努力终于克服了困难,完成了自己的作品知识的增长果然是个艰苦的过程指导老师田杰老师给予了我悉心的指导,在整个毕业设计的过程中,田老师从方方面面都给予帮助和支持从毕业设计任务的确定到最终论文的审阅批改,在每一细节上,田老师都细心的指导,设计中遇到的许多问题,也是在田老师的帮助下得以解决,使毕业设计能够顺利完成在此表示衷心的感谢所有老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;他们一丝不苟的教导和不拘一格的思路给予我无尽的启迪同时也非常感谢我身边的几位同学,他们同样给予了我很大的帮助在这里对所有帮助过我的人报以最真挚的感谢参考文献
[1]钱乐秋等.软件工程清华大学出版社2007
[2]孙鑫.JAJAWeb开发详解电子工业出版社2009
[3]王珊等.数据库系统概述高等教育出版社2006
[4]孙伟琴等.Tomcat与JSPWeb开发技术详解电子工业出版社2003
[5]光军胡波.JSP应用开发实例讲解北京航空航天大学出版社2002
[6]肖来元吴涛等.软件项目管理与案例分析清华大学出版社2009
[7]谭浩强等.基于Web标准的网页设计与制作清华大学出版社2009
[8]福塔著刘晓霞钟鸣译.MySQL必知必会人民邮电出版社2009附录if卖.equalsUserdegree{//用户以卖者身份登陆session.setAttributebuyinfo您还没有权限竟价购买商品!;response.sendRedirectrequest.getContextPath+/BuyGoods.jsp;}else{//用户以买者身份登陆floatprice=0;//保存商品购买表中的临时最高价格intshuliang=0;//保存商品信息表中的临时商品数量floatbeginprice=0;//保存商品信息表中的临时的起始价格//设置时间Dated=newDate;SimpleDateFormatf=newSimpleDateFormatyyyy-MM-dd;Stringdate=f.formatd;System.out.printlndate;longid=Long.parseLongStringsession.getAttributeselectGoodsId;//获得商品IDlonguserid=Long.parseLongStringsession.getAttributeloginedUserId;//获取用户IDStringsql=selectBuyPricefrombuygoodsinfowhereFk_GoodsId=+id+;//查询商品购买表中的最高竟价Stringsqlcount=selectBeginPriceGoodsCountfromgoodsinfowherepkid=+id+;//查询商品信息表中商品的数量ResultSetrs1=consql.lookforsqlcount;ResultSetrs=consql.lookforsql;try{whilers
1.next{beginprice=rs
1.getFloat1;//获取商品信息表中的起始价格shuliang=rs
1.getInt2;//获取商品信息表中商品的数量}whilers.next{price=rs.getFloat1;//获取商品购买表中买者的最高竟价}}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}finally{try{consql.sqlCon.close;}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}}floatmoney=Float.parseFloatrequest.getParametertxtprice;//购买价格ifmoneypricemoneybeginprice{//竟价成功intcount=Integer.parseIntrequest.getParametertxtbuycount;//购买数量ifcount=shuliang{Stringaddress=request.getParametertxtaddress;StringsendFin=request.getParametertxtsendFin;//检查数据库中是否存在对当前用户正在购买的商品信息Stringsqlexists=select*frombuygoodsinfowhereFk_GoodsId=+id+;ResultSetrsex=consql.lookforsqlexists;try{ifrsex.next==true{//更新记录Stringsqlupdate=updatebuygoodsinfosetFk_BuUserId=+userid+BuyPrice=+money+BuyCount=+count+BuyTime=+date+SendAddress=+address+SendFashion=+sendFin+whereFk_GoodsId=+id+;System.out.printlnsqlupdate;booleantag=consql.conupdatesqlupdate;iftag==false{//操作失败session.setAttributebuyinfo竟价购买操作失败!;response.sendRedirectrequest.getContextPath+/BuyGoods.jsp;}else{//操作成功session.setAttributebuyinfo您的竟价拍买信息已成功发送!;response.sendRedirectrequest.getContextPath+/BuyGoods.jsp;}}else{//保存新记录Stringsqlinsert=insertintobuygoodsinfoFK_BuUserIdFK_GoodsIdBuyCountBuyTimeBuyPriceSendAddressSendFashionisSuccvalues+userid++id++count++date++money++address++sendFin++1+;System.out.printlnsqlinsert;booleantag=consql.conupdatesqlinsert;iftag==false{//操作失败session.setAttributebuyinfo竟价购买操作失败!;response.sendRedirectrequest.getContextPath+/BuyGoods.jsp;}else{//操作成功session.setAttributebuyinfo您的竟价拍买信息已成功发送!;response.sendRedirectrequest.getContextPath+/BuyGoods.jsp;}}}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}catchIOExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}finally{try{consql.sqlCon.close;//关闭数据库连接}catchSQLExceptione{//TODOAuto-generatedcatchblocke.printStackTrace;}}}else{//购买失败session.setAttributebuyinfo数量超过现有数量,购买失败!;response.sendRedirectrequest.getContextPath+/BuyGoods.jsp;}}else{//竟价失败session.setAttributebuyinfo竟价过低,购买失败!;response.sendRedirectrequest.getContextPath+/BuyGoods.jsp;}}out.flush;out.close;}。