在线影像销售系统_第1页
在线影像销售系统_第2页
在线影像销售系统_第3页
在线影像销售系统_第4页
在线影像销售系统_第5页
已阅读5页,还剩66页未读 继续免费阅读

下载本文档

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

文档简介

摘要随着INTERNET国际互联网的发展,越来越多的企业开始建造自己的网站。基于INTERNET的信息服务,电子商务服务已经成为现代企业一项不可缺少的内容。很多企业都已不满足于建立一个简单的仅仅能够发布信息的静态网站。现代企业需要的是一个功能强大的,能提供完善的电子商务服务的动态商务网站。本设计论文的内容,围绕电子商务网站在线销售系统展开。电子商务网站销售系统是典型的信息管理系统MIS,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。结合系统设计的要求,对数据库管理系统、ECLIPSE、JAVAEEWEB应用程序设计进行了较深入的学习和应用,完成了在线销售系统的需求分析、功能模块划分、数据库模式分析,并由此设计了数据库结构和应用程序。系统运行结果证明,本文所设计的电子商务网站销售系统可以满足客户与管理员双方面的需要。本系统经过多次修改,难免有一些不足之处,在功能上还有较大的扩展性,还需要进一步开发完善。关键词在线影像销售系统;JAVA、HIBERNATE、JSP、STRUTS;数据库;MYSQL、ORACLE;ABSTRACTWITHTHEINTERNETOFDEVELOPMENTOFTHEINTERNET,MOREANDMOREENTERPRISESBEGINTOBUILDTHEIROWNWEBSITESINTERNETBASEDINFORMATIONSERVICES,ECOMMERCESERVICESHASBECOMEAMODERNENTERPRISEINDISPENSABLEELEMENTMANYENTERPRISESHAVEBEENUNSATISFIEDWITHTHEESTABLISHMENTOFASIMPLERELEASEINFORMATIONONLYTOTHESTATICSITEMODERNENTERPRISESNEEDISAPOWERFUL,CANPROVIDETHEPERFECTDYNAMICECOMMERCESERVICESBUSINESSWEBSITETHEDESIGNOFTHEPAPER,ONECOMMERCEWEBSITESSALESMANAGEMENTSYSTEMLAUNCHEDECOMMERCEWEBSITESSALESMANAGEMENTSYSTEMISTYPICALOFTHEINFORMATIONMANAGEMENTSYSTEMMIS,INCLUDINGDEVELOPMENTOFITSKEYDATABASEBACKGROUNDTOTHEESTABLISHMENTANDMAINTENANCEOFFRONTENDAPPLICATIONSANDTHEDEVELOPMENTOFTHETWOAREASREGARDINGTHEFORMERREQUIREMENTTOESTABLISHDATACONSISTENCYANDINTEGRITYSTRONGDATASECURITYFORGOODASFORTHELATTERDEMANDEDTHEAPPLICATIONFUNCTIONS,ANDEASYTOUSEFEATURESICOMBINETHEREQUIREMENTSOFSYSTEMDESIGN,DATABASEMANAGEMENTSYSTEM,ECLIPSE,JAVAEEWEBAPPLICATIONDESIGNFORAMOREINDEPTHSTUDYANDAPPLICATIONCOMPLETEDTHEONLINESALESSYSTEMNEEDSANALYSIS,FUNCTIONMODULES,DATABASEMODELING,THISDESIGNANDSTRUCTUREOFTHEDATABASEANDAPPLICATIONPROCEDURESTHERESULTOFRUNNINGTHESYSTEMPROVESTHATINTHISPAPER,THEECOMMERCEWEBSITEMARKETINGSYSTEMTOMEETCLIENTANDTHEMANAGERBOTHNEEDSTHESYSTEMHASBEENREVISEDMANYTIMES,ITISINEVITABLETHATTHEREARESOMESHORTCOMINGS,THEREAREFUNCTIONSINALARGEREXPANSION,ALSONEEDTOFURTHERDEVELOPPERFECT目录摘要1ABSTRACT2目录31绪论52开发环境及开发工具的介绍621JAVA6211JAVA概述6212JAVA的特点622MYSQL数据库和ORACLE数据库7221MYSQL数据库概述7222ORACLE数据库概述、安装823MYECLIPSE83所用技术介绍931HIBERNATE数据编程9311HIBERNATE的概念9312使用HIBERNATE编程步骤10313HIBERNATE类关系的处理1032JSP动态页面编程11321JSP的特点1133STRUTS框架软件开发11331STRUTSMVC框架114在线影像销售系统需求分析1241系统界面要求12411客户端12412服务器端1342系统的功能要求1443系统的角色及其功能分析1444系统的数据分析1545系统实体间的联系165在线影像销售系统总体设计17511数据库部分表的结构设计18512数据库表的ER图1952系统的类设计2553系统模块的划分2654系统我所做的主要模块的具体实现26541购物车管理模块27542订单管理模块396测试47总结与体会48致谢49参考文献50附录一英文资料原文51附录二英文资料译文651绪论21世纪将是一个以网络计算为核心的信息时代。数字化,网络化与信息化是本世纪的时代特征。目前经济全球化和网络化已经成为一种潮流,信息技术革命与信息化建设正在使资本经济转变为信息经济,知识经济,将迅速改变传统经贸交易方式和整个经济的面貌,它可加快世界经济结构的调整与重组,推动我国从工业化向信息化社会的过渡。电子商务EC正是一种基于数字化,网络化,信息化,以交易双方为主体,以银行电子支付和结算为手段,以客户数据为依托的全新商务模式。电子商务促进了全社会的增值,促进知识经济的发展,增加了新行业的出现。电子商务为企业降低了采购价格,减少了库存和产品的积压,缩短生产周期,实现了更有效的客户服务,降低了销售价格,增加了新的销售机会。电子商务如今发展迅速,2003年全球交易额为65000亿美元,未来年10中,1/3的全球国际贸易将以这种形式完成。电子商务在发达国家已进入了稳定的高增长期。在线影像销售系统是基于计算机技术,INTERNET技术,商务营销知识的电子商务网站系统。他的主要功能是完全面向会员等消费者的需求,通过电子化的信息采集,处理,实现在线的交易,提高了信息交换的速度和准确性,以最大程度满足会员用户的需求,充份体现信息时代的优越性。网站设计使用B/S结构,使用STRUTS框架来实现MVC架构的设计方法,主要应用动态网页设计JSP技术结合数据库管理HIBERNATE技术,及遵循商务营销理论知识来实现在线交易,会员管理,订单管理,商品管理功能,并且具有优美的界面,简易的人机交互流程,全面的服务信息提示和收集用户反馈信息等功能。在线影像销售系统已经实现了各项主要功能,成为完整的以购物车为中心的网上交易系统。2开发环境及开发工具的介绍21JAVA211JAVA概述1991年,SUNMICROSYSTEM公司的JAMEGOSLING、BILLJOE等人,为在电视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为OAK的软件即一种橡树的名字,但当时并没有引起人们的注意,直到1994年下半年,INTERNET的迅猛发展,环球信息网WWW的快速增长,促进了JAVA语言研制的进展,使得它逐渐成为INTERNET上受欢迎的开发与编程语言,一些著名的计算机公司纷纷购买了JAVA语言的使用权,如MICROSOFT、IBM、NETSCAPE、NOVELL、APPLE、DEC、SGI等,因此,JAVA语言被美国的著名杂志PCMAGAZINE评为1995年十大优秀科技产品,计算机类就此一项入选,随之大量出现了用JAVA编写的软件产品,受到工业界的重视与好评,认为“JAVA是八十年代以来计算机界的一件大事“,微软总裁比尔盖茨在悄悄地观察了一段时间后,不无感慨地说“JAVA是长时间以来最卓越的程序设计语言“,并确定微软整个软件开发的战略从PC单机时代向着以网络为中心的计算时代转移,而购买JAVA则是他的重大战略决策的实施部署。因此,JAVA的诞生必将对整个计算机产业发生深远的影响,对传统的计算模型提出了新的挑战。SUNMICROSYSTEM公司的总裁SCOTTMCNEALY认为JAVA为INTERNET和WWW开辟了一个崭新的时代。环球信息网WWW的创始人BERNERSLEE说“计算机事业发展的下一个浪潮就是JAVA,并且将很快会发生的“。212JAVA的特点JAVA是一个广泛使用的网络编程语言,它是一种新的计算概念。首先,作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。其次,它最大限度地利用了网络,JAVA的小应用程序APPLET可在网络上传输而不受CPU和环境的限制。另外,JAVA还提供了丰富的类库,使程序设计者可以很方便地建立自己的系统。JAVA语言有面一些特点简单、面向对象、分布式、解释执行、鲁棒、安全、体系结构中立、可移植、高性能、多线程以及动态性。1简单性JAVA语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。JAVA略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外,JAVA也适合于在小型机上运行,它的基本解释器及类的支持只有40KB左右,加上标准类库和线程的支持也只有215KB左右。库和线程的支持也只有215KB左右。2面向对象JAVA语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。3分布性JAVA是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其它对象。4鲁棒性JAVA在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的例外处理机制,在编译时,JAVA提示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外,JAVA在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。5安全性用于网络、分布环境下的JAVA必须要防止病毒的入侵。JAVA不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用“特洛伊“木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。22MYSQL数据库和ORACLE数据库221MYSQL数据库概述MYSQL数据库介绍MYSQL作为一种开放源码数据库,以其简单易用的特点广泛被广大用户采用,MYSQL虽然是免费的,但同ORACLE,SYBASE,INFORMIX,DB2等商业数据库一样,具有数据库系统的通用性1)数据库管理系统。我们知道,所谓的数据库就是一些结构化的数据的联合体,要提供对这些数据的存取、增加、修改、删除或更加复杂的数据抽取等操作,需要有一个支撑系统,这就是数据库管理系统(DBMS),MYSQL完全具有这方面的功能。2)关系型数据库管理系统。在数据库的发展历程中,曾出现过多种不同形式的数据库系统,但关系型数据库管理系统(RDBMS)以其优越性而被广为采用,象现在几种广泛使用的数据库全为关系型数据库。同样,MYSQL也是关系型的数据库系统,支持标准的结构化查询语言(STRUCTUREDQUERYLANGUAGE)。3)开放源码数据库。同商业性的数据库相比,这是MYSQL最大的特点。MYSQL的源码是公开的,这就意味着任何人,只要遵守GPL的规则都可以对MYSQL的源码使用、修改以符合自己特殊的需求。4)技术特点。MYSQL是C/S架构的服务器,服务器端是多线程的,为客户端提供了不同的程序接口和链接库,如C、C、JAVA、PERL、PHP、TCL等,也提供了简单的管理工具,如MYSQLADMIN,MYSQL等。MYSQL有如此多的特点,又由于其免费的特点,这就给许多的中小应用提供了不错的选择。尤其是对一些中小企业,无论是从降低成本,还是从性能方面,采用MYSQL作为其数据支撑系统,都是一种可行的方案。但也应当注意,采用MYSQL作为应用数据库,就意味着所有的问题都需要自己解决,要承担一定的风险。222ORACLE数据库概述、安装一概述ORACLE是以高级结构化查询语言SQL为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客户/服务器CLIENT/SERVER体系结构的数据库之一。二特点1、ORACLE7X以来引入了共享SQL和多线索服务器体系结构。这减少了ORACLE的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。2、提供了基于角色ROLE分工的安全保密管理。在数据库管理功能、完整性检查、安全性、一致性方面都有良好的表现3、支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。4、提供了与第三代高级语言的接口软件PRO系列,能在C,C等主语言中嵌入SQL语句及过程化PL/SQL语句,对数据库中的数据进行操纵。加上它有许多优秀的前台开发工具如POWERBUILD、SQLFORMS、VISIABASIC等,可以快速开发生成基于客户端PC平台的应用程序,并具有良好的移植性。5、提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数据,并有对称复制的技术。23MYECLIPSEECLIPSE是一个开放源代码的、基于JAVA的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,ECLIPSE附带了一个标准的插件集,包括JAVA开发工具(JAVADEVELOPMENTTOOLS,JDT)。这种平等和一致性并不仅限于JAVA开发工具。尽管ECLIPSE是使用JAVA语言开发的,但它的用途并不限于JAVA语言;例如,支持诸如C/C、COBOL和EIFFEL等编程语言的插件已经可用,或预计会推出。ECLIPSE框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。简单而言,MYECLIPSE是ECLIPSE的插件,也是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错。GENUITEC发布了MYECLIPSEENTERPRISEWORKBENCH50,更智能、更快捷、更简单和更便宜的J2EE工具的新版本的诞生。它的价格对于个人和企业开发人员来说都是非常有吸引力的。这是J2EEIDE市场一个重量级的选手。通过增加UML双向建模工具、WYSIWYG的JSP/STRUTSDESIGNER、可视化的HIBERNATE/ORM工具、SPRING和WEBSERVICES支持,以及新的ORACLE数据库开发,MYECLIPSE50继续为业界提供全面的产品。GENUITEC总裁MAHERMASRI说,“今天,MYECLIPSE已经提供了意料之外的价值。其中的每个功能在市场上单独的价格都比MYECLIPSE要高。但是,我们承诺为顾客提供全面并且可以买得起的解决方案。按照这个传统,我们的顾客将继续享受年度订购活动的好处,该活动提供了所有发布功能的入口以及伴随MYECLIPSE50一起的专业技术支持。“3所用技术介绍31HIBERNATE数据编程311HIBERNATE的概念HIBERNATE一种ORM工具,是连接JAVA应用程序和关系数据库的中间件,这是对JDBC的封装,主要负责JAVA对象的持久化操作1ORM(OBJECTRELATIONMAPPING)对象关系映射2对象持久化,把数据保存在永久的存储介质中(数据库)312使用HIBERNATE编程步骤1,配置环境,加载HIBERNATE的JAR文件,以及连接数据库连接使用的JAR文件,并配置CLASSPATH环境变量。HIBERNATE中所需要的各JAR的作用1HIBERNATE3JAR编译HIBERNATE所必须的JAR文件2第三方JAR文件即HIBERNATE自身所使用的其它JAR文件,有以下介绍的JAR文件,目前阶级对于我们开发一个使用HIBERNATE技术底层实现的项目已经够用了2,写HIBERNATE所需的配置文件,HIBERNATECFGXML,XXXXXHBMXML。3,写POJO类。4,调用HIBERNATEAPI。313HIBERNATE类关系的处理1、ONETOONE关系在数据库中如何体现,在JAVABEAN中如何体现,在HIBERNATE中如何映射ONETOONE关系。1、数据库中一个表的外健对应另一个表的主健,外健要加上UNIQUE约束。或者是两个表共享一个主健。在HIBERNATE映射文件XXXHBNXML中配置片段共享主键主表副表ACCT外键加上UNIQUE主表副表2、JAVABEAN中在JAVABEAN中增加一个属性,即另外一个对象的引用,可以单向也可以双向。3、在HIBERNATE中主健映射都是ONETOONE要用FOREIGN生成策略。外健映射主表中用ONETOONE,副表通过PROPERTYREFMANYTOONE2、MANYTOONE关系在数据库中如何体现,在JAVABEAN中如何体现,在HIBERNATE中如何映射MANYTOON关系。1、数据库中一个表的主健对应另一个表的外健。2、JAVABEAN中一个对象包含另一个对象的一个引用,另一个对象包含这个对象的一组(集合,用SET)引用。在HIBERNATE映射文件XXXHBNXML中配置片段主表副表32JSP动态页面编程321JSP的特点(1)JSP里面可以嵌入JAVA代码(2)在运行的时候,JSP被容器翻译成为一个SERVLET,放在APACHETOMCAT5520WORKCATALINALOCALHOST目录下面(3)不需要再在配置文件里面配置(4)文件被修改之后,自动进行重新编译33STRUTS框架软件开发331STRUTSMVC框架WEB开发三层结构交互层,表现数据,收集数据,也就是视图层,接受请求,通过处理层完成相应的响应。(V,C)处理层,完成数据的处理,也就是业务层(M)。MVC架构模式强行的业务的表现和业务的处理分开,最大限度得减少软件各层之间的偶合性,软件可以更好维护和扩展。当你改变业务的表现时不会影响到业务的处理,扩展业务时不会影响到业务的表现。STRUTSMVC框架STRUTS是使用MVC的实现模式二来实现的,也就是以控制器为核心。STRUTS提供了一些组件使用MVC开发应用程序MODELSTRUTS没有提供MODEL类。这个商业逻辑必须由WEB应用程序的开发者以JAVABEAN或EJB的形式提供VIEWSTRUTS提供了ACTIONFORM创建FORMBEAN,用于在CONTROLLER和VIEW间传输数据。此外,STRUTS提供了自定义JSP标签库,辅助开发者用JSP创建交互式的以表单为基础的应用程序,应用程序资源文件保留了一些文本常量和错误消息,可转变为其它语言,可用于JSP中。CONTROLLERSTRUTS提供了一个核心的控制器ACTIONSERVLET,通过这个核心的控制器来调用其他用户注册了的自定义的控制器ACTION,自定义ACTION需要符合STRUTS的自定义ACTION规范,还需要在STRUTSCONFIGXML的特定配置文件中进行配置,接收JSP输入字段形成ACTIONFORM,然后调用一个ACTION控制器。ACTION控制器中提供了MODEL的逻辑接口。基于STRUTS的WEB应用的开发步骤1,对应用环境进行配置2,创建WEB应用的结构,需要将STRUTS应用的JAR文件进行部署。3,在WEB服务器部署STRUTS4,配置STRUTSCONFIGXML文件,配置ACTOIN5,写自定义ACTION,实体,以及业务类4在线影像销售系统需求分析41系统界面要求411客户端系统的客户端初始界面假定用户是未登录,客户端主页面显示最新上架的影像制品以供客户购买,但是客户在未登录情况下只能查看商品,和对购物车的操作,不能下订单和结账的操作,用户可以通过初始界面提供的统一的用户登录接口,登录进入系统,因此系统主页面应该能自动进行身份判别,按照访问者的身份自动进入其相应的功能权限的管理,其购物流程如图42所示图411客户端操作界面流程图412服务器端系统的服务端初始界面假定用户是未登录,服务端主页面显示是一个管理员登录界面,用户可以从系统管理员那里得到用户名和密码进行登录,登录进入系统后系统自动进行身份判别赋相应的管理权限,因此系统主页面应该能自动进行身份判别,按照访问者的身份自动进入其相应的功能权限的管理,其流程如图43所示图412服务器端操作界面流程图42系统的功能要求本系统应具有通常网上在线销售网站应该具有的所有功能,包括用户注册、用户登录、查看商品、选购商品、创建订单、保存订单、购买商品、客户在线留言、客户资料修改、在线商品的管理、客户订单的处理、留言的管理等。对于查看商品、选购商品这类频繁发生的系统操作,要采取适当的技术优化这类数据操作,以提高数据存取效率。43系统的角色及其功能分析1在线影像销售系统应具有四个角色1客户2普通的网站浏览者(即游客)3普通管理员4超级管理员2系统角色的功能分析1、客户应该具有的功能1登录系统2对前台在线商品的查看包括查看商品的名称、商品的价格等3对前台在线商品的选购包括添加商品到购物车、修改所选商品的购买数量、删除所选购的商品4跟据购物车的的商品创建订单,保存订单等。2、游客应具有的功能1对前台在线商品的查看包括查看商品的名称、商品的价格等2对前台在线商品的选购包括添加商品到购物车、修改所选商品的购买数量、删除所选购的商品3、普通管理员应该具有的功能普通管理员跟各自所拥有的权限的不同具有相应的不同的系统后台管理功能4、超级管理员应具有的功能超级管理员应具有系统后台管理的所有权限,可以持行系统的任何功能,如添加管理员,便为之赋于不同和管理权限。44系统的数据分析1客户信息,是指一个客户的属性信息,具体包括以下内容1姓名2密码3地址4EMAIL5电话号码6所拥有的所有订单2商品信息,系统中的商品的信息应该包括1名称2图片3商品描述4地区5情节6进价7售价8库存9销售额3、购物车信息应该包括1所有的商品4、订单信息该包括1订单号2客户3状态4送货地址5订单项6创建时间7过期时间8总额5、订单项1商品ID2商品名称3商品价格4数量5小计6、管理员1姓名2密码3权限7、留言1客户名2日期3标题4内容45系统实体间的联系图45系统各实体类间的联系5在线影像销售系统总体设计设计思想该系统是基于B/S架构下的多层结构应用系统。由于每个软件都有自身的特点,因此不可能提供一个适用于所有软件的结构体系。总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成,共同完成特定的功能。层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件的API,而下层组件则不依赖于上层组件。例如表述层依赖于业务逻辑层,而业务逻辑层依赖于数据库层。并且每个层对对上层公开API,但具体的实现细节对外透明。当某一层发生变化,只要API不变,不会影响其他层的实现。如图下图图5系统设计思想图在数据库层,该系统的前期开发用的使用的是ORACLE数据库在后期运行使用的是MYSQL数据库来对系统中需要持久存储的数据进行存储;持久层用到HIBERNATE技术构造数据访问接口DAO对业务层所使用到的持久化对象进行存取管理;业务逻辑层用普通JAVABEAN实现逻辑业务处理功能,表述层运用基于STRUTS的MVC设计模式,利用STRUTS中控制器来调用业务层JAVABEAN来处理业务,通过JSP技术动态的生成页面信息。511数据库部分表的结构设计1WZP_ORDER表用来保存客户的订单信息,设计出WZP_ORDER表如表52表511订单表WZP_ORDER列名类型长度描述OIDNUMBER16对象IDORDERNONUMBER16订单IDSTATUSNUMBER1订单状态CREATEDATEDATE创建日期ENDDATEDATE过期日期TELVARCHAR220电话号码COSTNUMBER8订单总额EMAILVARCHAR240EMAILUSER_FIDNUMBER16客户对象表IDSTREETVARCHAR220街道AREAVARCHAR220地区CITYVARCHAR28城市PROVINCEVARCHAR210省COUNTRYVARCHAR28国家POSTCODENUMBER6邮编2WZP_ITEM表用来保存客户订单中的订单项信息,设计出WZP_ITEM表如表53表512订单项表WZP_ITEM列名类型长度描述OIDNUMBER16对象IDPIDNUMBER16商品对象IDNAMEVARCHAR220商品名称PRICENUMBER8商品价格NUMNUMBER8商品数量ORDER_FIDNUMBER16订单对象ID3WZP_PRODUCT表用来保存商品的信息,设计出WZP_PRODUCT表如下表513商品表WZP_PRODUCT主要字段数据类型长度描述OID数字型10NAME字符型20产品名称INPRICE数字型10进价OUTPRICE数字型10售价STOCK数字型10库存HASSEND数字型10已售PATH字符型30图片路径DESCRICE字符型500产品描述BYAREA字符型20所属地区512数据库表的ER图USERUSERIDNAMEGENDERPASSWORDOFFICEPHONEMOBIYPHONEEMAILADDRESS图5121客户表ER图CREATETABLEWZP_USERUSERIDNUMBER16PRIMARYKEY,NAMEVARCHAR28NOTNULLUNIQUE,GENDERVARCHAR210NOTNULL,PASSWORDVARCHAR210NOTNULL,ADDRESSVARCHAR240NOTNULL,EMAILVARCHAR240,MOBIYPHONEVARCHAR220,OFFICEPHONEVARCHAR220,(以上代码创建表WZP_USER,该表主要用来保存一个用户,它得主键作为WZP_ORDER表的外键,与订单表为一对多的关系)MANAGERPASSWORDNAME图5122管理员表ER图MANAGEITEMTEMNAMEITEMID图5123管理项表ER图ORDERADDRESSSTATUSREATEDATEIDEMAILTELCOSTENDDATE图5124订单表ER图CREATETABLEWZP_ORDEROIDNUMBER16PRIMARYKEY,ORDERNONUMBER16NOTNULLUNIQUE,STATUSNUMBER1NOTNULL,CREATEDATEDATENOTNULL,ENDDATEDATENOTNULL,TELVARCHAR220,COSTNUMBER8,2,EMAILVARCHAR240,USER_FIDNUMBER16,NOTNULL,STREETVARCHAR220,AREAVARCHAR220,CITYVARCHAR28,PROVINCEVARCHAR210,COUNTRYVARCHAR28,POSTCODENUMBER6,FOREIGNKEYUSER_FIDREFERENCESWZP_USERID(以上代码创建表WZP_ORDER,该表主要用来保存一个订单,并且引用用户表主键为外键,与USER表为一对多的关系)ITEMNAMEIDNUMPRICE图5125订单项表ER图CREATETABLEWZP_ITEMOIDNUMBER16PRIMARYKEY,PIDNUMBER16NOTNULL,NAMEVARCHAR220NOTNULL,PRICENUMBER8,2NOTNULL,NUMNUMBER8NOTNULL,ORDER_FIDNUMBER16,FOREIGNKEYORDER_FIDREFERENCESWZP_ORDEROID(以上代码创建表WZP_ITEM,该表主要用来保存一个订单项,并且引用订单表主键为外键,与订单表为一对多的关系)PRODUCTNAMEIMAGEOIDDESCRIBEBYAREAOUTPRICENPRICESENDSTOCKBYSCENE图5126商品表ER图CREATETABLEWZP_PRODUCTOIDNUMBER16PRIMARYKEY,NAMEVARCHAR220NOTNULL,INPRICENUMBER10,2NOTNULL,OUTPRICENUMBER10,2NOTNULL,STOCKNUMBER10NOTNULL,HASSENDNUMBER10,PATHVARCHAR230,DESCRICEVARCHAR2500,BYAREAVARCHAR220(以上代码创建表WZP_PRODUCT,该表主要用来保存一个商品)MESSAGEUSERNAMECONTENTDATEOID图5127管理表ER图ORDERPRODUCTMANAGEITEMMANAGERITEMMESSAGEUSERSENDORDERRCREATECREATEMANAGEN11N1N1NMN图5128总体ER图52系统的类设计图52系统总的类图系统的各类图之间的关系描述USER类与ORDER类为一对多的关系,一个客户可以有多个订单,在USER类中设计一个SET集合来保存这个客户所有的订单。在ORDER类中有一个USER属性来指定它所属的客户,使之建立双向关联。ORDER类与ITEM类为一对多的关系,一个订单可以有多个订单项,在ORDER类中设计一个SET集合来保存这个订单所有的订单项。使订单和订单建立起单向关联。PRODUCT类与ORDER类为多对多的关系,一个订单可以有多个商品项,一个商品可以被多个订单所拥有,PRODUCT类与ORDER类之间的关联是通过第三个类ITEM类来建立联系的。CART类与ITEM类为一对多的关系,一个订单可以有多个订单项,在CART类中设计一个SET集合来保存这个订单所有的订单项。使订单和订单建立起单向关联。53系统模块的划分在线销售系统的核心内容就是方便用户能够快速地浏览系统中的各种商品信息和对其购买,同时也能够方便地进行商品、客户的管理。本次毕业设计的在线影像销售系统划分为如下的功能模块(1)客户管理模块(2)管理员管理模块(3)购物车管理模块(4)订单管理模块(5)产品管理模块(6)留言管理模块系统的业务图PRODUCTSLISTPRODUCTDETAILINFOSHOPCARTMANAGEMENTCUSTOMERINFOMODIFICATIONCUSTOMERAUTHENTICATIONCUSTOMERREGISTRATIONORDERMANAGEMENTPRODUCTINFOSHOPCARTINFOUSERINFOORDERINFOUSER图53系统总的功能模块图54系统我所做的主要模块的具体实现本系统是由三个人分组合作完成,我所做的主要模块是购物车管理模块和订单管理模块。541购物车管理模块购物车管理模块主要功能有如下几个部分在超市购物,可以根据自己的需要将很多的物品挑选到购物车(篮)中。而在网上虚拟的购物商城中,通常都会采用一种被称做“购物车”的技术来模拟现实生活。这种技术用起来十分方便,不但可以随时添加,查看,修改,清空购物车中的内容,还可以随时去收银台结帐。图5411系统前台总的功能图1、创建购物车有两种情况下会给客户创建一个购物车。第一种当客户访问客户端,并且进入登录界面进行登录操作时,这时会系统会给客户创建一个购物车放入服务器的SESSION会话中。使客户在整个会话中都拥有一个相同的购物车。第二种情况是当客户在选购商品时,第一次向服务器发送“添加到购物车”请求时。系统会给客户创建一个购物车放入服务器的SESSION会话中。这里主要运用了HTTP协议中的会话机制,将购物车保存在客户的会话中,这样在整个客户游览不同页面商品的过程中,都会使用同一个购物车对象。具体执行步骤1从客户的请求对象中获取SESSION会话对象,如果会话对象不存在,需要重新创建新的会话对象。2从会话对象中获取购物车对象3判断是购物车对象是不是空的,如果是空是就创建一个购物车对象。功能流程图图5412创建购物车流程图对于第二种情况的具体实现部分代码/向购物车中添加一个商品项PUBLICACTIONFORWARDADDITEMACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONCARTCARTNULL/从SESSION会话中获取购物车对象CARTCARTREQUESTGETSESSIONGETATTRIBUTE“CART“/判断购物车是否存在IFCARTNULL/创建购物车CARTNEWCARTREQUESTGETSESSIONSETATTRIBUTE“CART“,CART2、向购物车中添加一个商品项客户在查看网页上的一个商品时,当向服务器发送一个“添加到购物车”的请求时,会执行这个功能。客户在浏览系统中的商品时,看到自己比较喜欢的商品时会将它放入自己的购物车中。当客户多次选购同一个商品时,在购物车的商品项只显示一列,但会自动的给所选购的商品数量加一,自动的对商品项的小计和购物车的总计进行更新。功能执行过程1从客户请求对象中获取商品的ID,这个ID是请求参数中传递过来的,读取后将其从字符串类型转换成INTERGER数值类型。2调用业务层的方法根据商品ID去调用数据访问对象去数据库查询商品的信息,返回商品对象3从商品对象中获取商品名,商品价格,来构建一个商品项对象4从SESSION会话中获取购物车对象5调用业务层的方法来根据购物车对象和商品项对象来执行添加操作6将些商品项对象放入到购物车中7对购物车的小计和总计数据重新进行计算,并对其更新。8将新的购物车对象放入SESSION会话中,来更新购物车对象。9转发到新购物车页页去重新显示最新的购物车信息。图5413向购物车中添加商品图功能流程图图5414向购物车中添加商品流程图部分实现代码/向购物车中添加一个商品项ACTION类中PUBLICACTIONFORWARDADDITEMACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONTRY/从请求对象中获取商品的ID并将其转换成数值型INTEGERPIDINTEGERPARSEINTREQUESTGETPARAMETER“PID“/生成业务层对象PRODUCTSERVICEPRODUCTSERVICENEWPRODUCTSERVICEIMPL/调用业务层方法,根据商品ID去数据库查询商品PRODUCTPROPRODUCTSERVICEGETPRODUCTBYOIDPID/获取商品信息STRINGPNAMEPROGETNAME/DOUBLEOUTPRICEPROGETOUTPRICEITEMITEMNEWITEMPID,PNAME,OUTPRICE,1CARTMANAGERCMNEWCARTMANAGER/添加商品到购物车CMADDITEMCART,ITEMCATCHEXCEPTIONERETURNMAPPINGFINDFORWARD“ERROR“RETURNMAPPINGFINDFORWARD“SUCCESS“/在购物车中插入一个订单项/PUBLICVOIDADDITEMCARTCART,ITEMITEMTHROWSBIZEXCEPTIONSETITEMSCARTGETITEMSFORITEMIITEMS/如果添加的商品已有,只是修改所选商品的数量不添加商品项IFITEMGETPIDIGETPIDINTNUMITEMGETNUMMODIFYITEMCART,ITEMGETPID,NUM1RETURNCARTADDITEMITEM3、修改购物车中一个商品项在客户查看购物车时,想修改自己的购买商品时,会执行这个功能。由于商品的名称和价格都是系统管理人员设置的,所以客户都不可以修改,客户只能修改他/她所购买商品的数量。修改所选购的商品数量时,相应的商品项的小计和购物车的总计都会保持实时的更新。功能的执行步骤1将ACTIONFORM转换为ITEMFORM对象,ACTIONFORM对象会自动的提取页面FORM表单中的数据2从ITEMFORM对象中获取商品ID3从SESSION会话中获取购物车对象4根据商品ID去调用业务层的方法去修改商品项5修改小计6将些商品项对象放入到购物车中图5415修改购物车中商品图功能流程图图5416修改购物车中商品流程图部分实现代码/商品项的FORMACTION来获取和设置FORM表单中数据PUBLICCLASSITEMFORMEXTENDSACTIONFORMPRIVATEINTEGERPIDPRIVATEINTNUMPUBLICITEMFORMSUPERPUBLICINTGETNUMRETURNNUMPUBLICVOIDSETNUMINTNUMTHISNUMNUMPUBLICINTEGERGETPIDRETURNPIDPUBLICVOIDSETPIDINTEGERPIDTHISPIDPID/修改购物车中商品项PUBLICACTIONFORWARDMODIFYITEMACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTION/TODOAUTOGENERATEDMETHODSTUBTRY/创建业务层对象CARTMANAGERCMNEWCARTMANAGER/提取FORM中的数据INTEGERPIDITEMFORMGETPIDINTNUMITEMFORMGETNUM/调用业务层方法修改购物车CMMODIFYITEMCART,PID,NUM/更新SESSION中的购物车对象REQUESTGETSESSIONSETATTRIBUTE“CART“,CART/为生成动态页页做准备SETITEMSCMGETALLITEMSCARTDOUBLECOSTCMGETCOSTCARTREQUESTSETATTRIBUTE“ITEMS“,ITEMSREQUESTSETATTRIBUTE“COST“,COSTCATCHEXCEPTIONERETURNMAPPINGFINDFORWARD“ERROR“RETURNMAPPINGFINDFORWARD“LIST“/按商品号修改商品数量/PUBLICVOIDMODIFYITEMCARTCART,INTEGERID,INTNUMTHROWSBIZEXCEPTIONSETITEMSCARTGETITEMSFORITEMITEMITEMS/查询要修改的商品数量IFITEMGETPIDEQUALSIDIFNUM0CARTDELETEITEMITEMELSECARTDELETEITEMITEMITEMSETNUMNUMCARTADDITEMITEMBREAK4、查看购物车客户选取了所有的商品后,来向服务器发送“购物车”请求时,会执行此功能,系统根据会话中的购物车中的商品项,来获取客户所选选商品的一个集合,在JSP页面上对这个集合中的商品项进行显示。功能的执行步骤1从客户的请求对象中获取购物车对象2从购物车对象中获取所有的商品项3将所有的商品项对象加载到请求对象中发送给客户端图5417查看购物车中商品图功能流程图图5418查看购物车中商品流程图部分实现代码/显示购物车中的商品列表/PUBLICACTIONFORWARDLISTITEMACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONTRYCARTMANAGERCMNEWCARTMANAGER/调用业层方法去获取购物车中的所有的商品SETITEMSCMGETALLITEMSCART/获取总计DOUBLECOSTCMGETCOSTCARTREQUESTSETATTRIBUTE“ITEMS“,ITEMSREQUESTSETATTRIBUTE“COST“,COSTCATCHEXCEPTIONERETURNMAPPINGFINDFORWARD“ERROR“RETURNMAPPINGFINDFORWARD“LIST“/根据购物车获取所有的商品PARAMCART购物车RETURN所有商品/PUBLICSETGETALLITEMSCARTCARTTHROWSBIZEXCEPTIONRETURNCARTGETITEMS/根据购物车获取总额PARAMCART购物车RETURN商品总额/PUBLICDOUBLEGETCOSTCARTCARTTHROWSBIZEXCEPTIONRETURNCARTGETCOST/5、删除购物车中的一个商品项客户在查看购物车时,发现自己以前所选的商品不想要了,会向服务器发送一个“删除商品项”的请求时,会执行这个功能。删除商品项时,系统会自动更新购物车的总计值。功能执行过程10从客户请求对象中获取商品的ID11调用业务层的方法根据商品ID调用数据访问接口去数据查询商品的信息,返回商品对象12从SESSION会话中获取购物车对象13调用业务层的方法根据商品ID去删除购物车对象中的商品项14将购物车重新加入到SESSION会话中,来更新SESSION会话中的购物车对象图54110删除购物车中商品图功能流程图54111删除购物车中商品流程图部分代码实现/删除购物车中一个商品项PUBLICACTIONFORWARDREMOVEITEMACTIONMAPPINGMAPPING,ACTION

温馨提示

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

评论

0/150

提交评论