1、洛 阳 理 工 学 院毕 业 设 计(论 文) 题目网上书店系统设计与实现2015年 04 月 15 日洛阳理工学院毕业设计(论文)网上书店系统设计与实现摘要我国最早产生的电子商务模式是B2C模式,是以8848网上商城正式运营为标志的。这种模式节省了企业和客户的时间和空间,大大提高了交易的效率,特别是对于工作忙碌的上班族,这种模式可以为其节省时间。但是在网上出售的商品特征也非常明显,仅仅局限于一些特殊的商品,例如音像制品、图书、数码类产品、玩具、鲜花等等。这些商品对购买者视、听、触、嗅等感觉体验要求较低,像音响设备、服装、香水需要消费者特定感官体验的商品就不适合在网上销售,当然,也不排除某些消
2、费者认定某一品牌某一型号而不需要现场体验就决定购买,这样的消费者很少,尤其在我国产品质量管理体系并不完善的情况下,人们更愿意相信自己的亲身体验来决定是否购买。所以,到目前为止,B2C市场上成功的企业如当当、淘宝,都是卖一些特殊商品的。本文通过对电子商务网站首页的建设以实现购物网站功能。通过对本系统的研究,JSP设计平台、SQL语言原理、对MySQL数据库管理系统,进行了较深入的学习和应用,主要完成对网上购物系统的需求分析、功能模块实现的划分、数据库设计模式分析,并由此设计了数据库结构和应用程序。关键词: B2C 商品 销售 电子商务 网上购物 ONLINE SHOPPING WEBSITE P
3、LATFORM CONSTRUCTION B2CABSTRACTB2C model is the first generation of e-business models to operate 8848 marked the official online store. Because of this mode of saving consumers and businesses time and space, greatly improving the efficiency of the transaction, especially for busy office workers, th
4、is model can save their valuable time. But the characteristics of the merchandise for sale online is also very clear that only limited to some specific commodities such as books, audio and video products, digital products, flowers, toys and more. These goods to the buyer to see, hear, touch, smell a
5、nd other sensory experience, less demanding, such as clothing, stereo equipment, perfume needs of consumers of goods suitable for a specific sensory experience in online sales, of course, does not rule out a small number of consumers identified a model without the need for a brand-site experience to
6、 decide to buy, but that consumers rarely, especially in our products quality management system is not perfect, people are more willing to believe that their experience feelings to decide whether to buy. So far, B2C market, successful companies such as Dangdang, excellence, are selling some special
7、commodities. Based on the construction of e-commerce sites to achieve home shopping site functionality. Through the systematic study of the MySQL database management system, SQL language principle, JSP design platform for a more in-depth study and application, mainly to complete the online shopping
8、system requirements analysis, function module, database modeling, and thus designed the database structure and and application.Keywords B2C Commodities Sales E-commerce Online shopping 32目录前言1第1章 需求分析21.1 用户需求分析21.1.1 图书查询需求21.1.2 购物车管理需求21.1.3订单处理需求21.2管理员的权限分类.3第2章 系统开发系统42.1 MVC模式简介42.2 电子商务概况摘要4
9、第3章 系统总体设计63.1 UML活动关系图63.2 系统组成63.3功能设计.63.3.1图书信息管理.6 3.3.2购物车管理.6 3.3.3会员注册.6 3.3.4订单处理.6第4章 数据库设计与实现74.1数据库的需求分析74.2数据库的逻辑设计74.3数据表基本结构74.4创建数据表脚本.8第5章 系统实现过程85.1 系统开发平台85.2 系统各组件实现85.3 用户表示层8第6章 系统测试与实现.256.1系统测试.266.2测试结果.31谢 辞32参考文献33附录34前言随着Internet信息技术的高速发展,用户上网的迅速提升,公司、企业官方网站在商业活动中发挥着的作用越来
10、越大,在信息时代,建立一个界面美观、功能强大的电子商务网站,建立电子商务系统平台,对公司、企业的发展是非常重要的。所谓电子商务,是指各种具有商业活动能力的实体(生产企业、商贸企业、金融机构、政府机构、个人消费者等)利用网络和先进的数字化传媒技术进行的各项商业贸易活动。其中特别要强调的特点,一是其商业背景,二是网络化和数字化。简言之,电子商务就是通过电子网络渠道达成的商务活动。建立一个仅仅能够发布信息的静态网站对于很多企业已不满足这样的平台。现代企业需要的是一个功能更强大的,能提供完善的电子商务服务的动态的商务网站。同时随着人们的生活方式也在改变,去实体店的购物方式已不能满足人们的需求,所以电子
11、商务网站发展起来了。 JSP是Sun公司推出的一种网站开发的新技术,Sun公司借助自己在Java上的非凡造诣,又把人们引进JSP时代,JSP即Java Server Page的缩写,它可以在Servlet和JavaBean的支持下,完善功能强大的Web应用程序。所以,在我的毕业设计中,我选择了JSP作为开发工具,构建了一个能实现基本功能的电子商务的小型动态商务网站网上书店系统。通过对电子商务书店首页的建设以实现购物网站功能,通过对本系统的研究,对MySQL数据库管理系统、SQL语言原理、JSP设计平台,进行了较深入的学习和应用,主要完成对网上购物系统的需求分析、功能模块划分、数据库模式分析,并
12、由此设计了数据库结构和应用程序。为在线用户提供订单提交、购物车管理、支付系统从而提供给用户一个舒适的购物环境。本系统主要包括用户管理、书籍管理、购物车管理、订单管理等功能模块。该系统基本上具备一个网上书店系统应该具备的常用功能,该设计项目基本上能够体现构建一个动态商务网站所需的技术,实际上,目前的大型商务网站也就是我们这个小型网站在具体内容上的扩充和完善。一个完整的电子商务系统包括信息部分、资金部分与物流部分三个要素。信息部分就是通过电子网络向用户揭示所售商品的息,引导用户进行购物。资金部分就是使用户在选择商品后,能够通过网络支付相关费用,一般包括货到付款、网上银行支付、预付款支付等多种形式。
13、物流部分就是把用户所购买的商品通过物流配送系统送至用户手中,对于一些特殊行业和领域的电子商务,也可能不需要配送系统的支持就能把商品送到用户手中(如股票、电子杂志、域名注册等)。在电子商务中,除了上述三个要素外,网络的安全问题也是需要重点考虑的因素。据调查,有1/3的网民认为网络安全问题是影响其网上购物的因素,因此为了保证网络交易的安全,电子商务网站需要采用多种措施进行安全认证例如:数据加密、电子签名等。 第1章 需求分析1.1 用户需求分析网上书店系统主要是实现网上选书、购书、产生订单等功能的系统。本系统的目的是开发一个基于B/S架构的电子商务网站,为在线用户提供订单提交、购物车管理、支付系统
14、从而提供给用户一个舒适的购物环境。通过对电子商务网站及网上书店的考察、分析以及实际的市场调查,要求本系统具有以下功能:统一友好的操作界面,能保证系统的易用性。规范、完善的基础信息设置。图书分类详尽,可按不同类别查看商品信息。按图书大类及图书名称进行模糊查询。实现网上购书。新书及特价图书展示。本网上书店系统主要完成以下具体任务:1.1.1 图书查询需求当用户注册并登录网上书店时,应该在主页面中分类显示最近的书目信息,以供用户选择所需图书,同时也应该提供依照图书名称,或者作者出处快速查询所需书目信息的功能。1.1.2 购物车管理需求当用户选择购买某图书产品时,能够将对应图书信息,例如:价格、数量等
15、记录到购物车中,并允许用户返回书目查询页面,选择其他商品,并添加到购物车中,当对购物订单生成后,应该能够自动的清除以生成订单的购物车中的信息。1.1.3订单处理需求和用户购买图书商品信息需求对应,在核对了所购图书商品的价格、数量等信息后,提示用户选择对应的送货方式以及付款方式,最终生成对应的订单记录,以便于网站物流配货人员依据订单信息进行后续的出货、送货等处理。1.1.4管理员权限分类为了能够实现管理员和用户各自的所享有的功能,特将他们分类处理。在系统的管理端上设置不同的管理员,分角色、按照特定的权限的对系统进行管理和操作。(1)登录账号:admin,admin (系统管理员)(2)登录账号:
16、admin1,admin1 (商品管理员)(3)登录账号:admin2,admin2 (订单管理员)(4)登录账号:admin3,admin3 (会员管理员)权限管理,是指根据系统所设置的安全规则,用户只能访问自己被授权的资源。权限管理在任何系统里都是必不可少的,只要是有用户和密码的系统就可以了。那么权限管理如何分类?权限管理如何实施?下面让我们一起来了解一下。管理员权限从控制力度来看,可以将权限管理分为两大类:(1)功能级权限管理;(2)数据级权限管理。管理员权限从控制方向来看,也可以将权限管理分为两大类:(1)从系统获取数据,比如查询订单、查询客户资料;(2)向系统提交数据,比如删除订单、
17、修改客户资料。功能级权限控制,系统能做到这一点,让系统的管理员给用户分配角色,然后成功的实施步骤,整个过程只需要用户在功能级进行权限管理即可。因此系统是这样的: (1)图形化、集中管理的,便于企业管理;(2)可在线测试的,定制策略后在不影响业务的情况下,进行测试,确保无误。第2章 系统开发技术2.1 MVC模式简介MVC是Model(模型)View(视图)Controller(控制器)的缩写,它适用于大型可扩展的Web应用的开发,它强制性地将应用程序的输入、处理和输出分开,将其划分为模型、视图和控制器三个核心部分,使它们各司其职,各自完成不同的任务,其中任何一部分的修改都不会影响其它两部分。在
18、MVC模式中,模型封装了应用问题的核心数据、逻辑关系和业务规则,提供了业务逻辑的处理过程。模型一方面被控制器调用,完成问题处理的操作过程,另一方面为视图获取显示数据提供了访问数据的操作。因为模型是与数据格式无关的,因此一个模型可以为多个视图提供数据,这样一个模型一次编写可以被多个视图重用,从而避免了代码的重复编写。视图是MVC模式下用户看到的并与之交互的界面。视图从模型处获得数据,视图的更新由控制器控制。视图不包含任何业务逻辑的处理,它只是作为一种输出数据的方式。MVC模式中,控制器主要起导航的作用,它根据用户的输入调用相应的模型和视图去完成用户的请求。控制器本身不输出任何东西,它接受用户请求
19、并决定调用哪个模型构件去处理,以及由哪个视图来显示模型处理之后返回的数据。MVC的处理过程是这样的:对于每一个用户输入的请求,首先被控制器接收,并决定由哪个模型来进行处理,然后模型通过业务处理逻辑处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过显示页面呈现给用户。图1-1所示为模型、视图、控制器这三个模块各自的功能以及它们之间的相互关系: 图2-1 MVC模式2.2电子商务概况摘要电子商务模式是目前互联网人士思考较多的一个话题,在有了BC, BB等模式之后,一些网站最近又在尝试一种全新的概念BBC模式,而且看来这一模式已经被许多的网上书店所接受。在解释BBC模式时,
20、书生科技公司总裁王东临先生认为:“该模式的意思是中间的 B直接面对用户,把订单交给第一个B来执行。这种模式看起来好像只是传统的渠道销售的翻版,在互联网时代根本不可行,因为互联网经济的一大特征就是压扁渠道,Amazon等大行其道的原因也正是基于这种“中间商死亡”的论调,他们抢占的正是原来中间商的利润。因此,BBC模式长期以来被认为是一种不可能成立的模式。其实,如果中间的B能够提供一种独特的服务,把消费者都吸引到它那里去,并通过它下订单,则该模式就是可行的。EBook网络业务支持平台采用B/S结构,三层运行模式,同时适用于Intranet/Internet。浏览器为第一层,作为系统的应用界面;应用
21、逻辑服务为第二层;数据链接为第三层,作为系统的数据存取服务。此架构无须安装用户端软件,便于软件的分发和维护升级,适应了众多应用用户端分散环境下的运行和维护需求。本篇论文介绍了本系统开发环境和运行平台、java web、应用框架。而管理端的数据库则使用Microsoft SQL Server 2005管理平台的数据。第3章 系统总体设计3.1UML(统一建模语言)活动关系图下面是进入网上书店可以进行的操作。具体的UML活动如3-1UML活动关系图所示:购物车管理会员登录新会员注册订单管理提交订单图书查询 图3-1UML活动关系图3.2系统组成表3-1构成网上书店系统的各个组件用户表示层(视图)控
22、制处理层(控制器)业务逻辑(模型)adminMenu.jspcart.jspcheckOrder.jspdefault.jspindex.jspleaveword.jspmerchandise.jspmerInfo.jspmodiReg.jspOrder.jspOrderInfo.jspreg.jspsearch.jspsMerchandise.jspsorry.jspsubmitOrder.jspAdminActionAdminCateActionAdminLoginActionAdminMemberActionAdminMerActionAdminOrderActionCartAction
23、LoginActionMemActionMerActionOrderActionAdminServiceAdminServiceImplCartServiceCartServiceImplMemServiceMemServiceImplMerServiceMerServiceImplOrderServiceOrderServiceImpl3.3模块设计结构本系统相对而言,功能较为简单但很实用。本系统的模块设计结构,如下表所示: 用户注册、登录 在线购物用户注册登录顾客留言购买购物查询察看订单信息查看购物车在线购物购买购买查看订单详细继续购物清空购物车提交购物车删除已经选购的商品修改购买数量察看
24、物品详细资料图 3-1 客户端系统3.4功能设计3.3.1 图书信息管理该模块实现图书书目信息的分类显示,也提供了新增,删除,修改和查询等功能。此外,在用户选择了对应书目信息后,还可以显示出有关该图书的详细信息,以便于用户了解所购商品。3.3.2 购物车管理用于维护每一个进入网上书店的用户对应的购物车。即将用户所选购的图书商品信息记录到对应的购物车中,以便于到收银台进行结账处理。3.3.3 会员注册实现网上书店用户信息的注册、及身份验证。由于目前网上商城普遍采用的方式为送货上门或者邮寄,因此需要收集与用户相关的联系方式、通信地址等信息。3.3.4 订单处理根据用户的订单信息,进行订单的查看以及
25、删除等操作,方便用户的修改。根据相应的权限做相应的操作。第4章 数据库设计与实现4.1数据库的需求分析依据网上书店的处理需求,对应数据表的设计及功能如下:1.admin(管理员登录表):存放网上书店所销售图书的基本信息。2.category:存放网上书店所提供图书分类的信息。3.member:存放书店用户的基本信息。4.merchandise:存放每本图书的价格等基本信息。5.leaveword:存放用户留言信息。6.orders:存放的是用户的订单信息。7.memberlevel:存放用户的会员等级信息。8.cart(购物车表):存放用户购物车中图书的相关信息9.cartselectedme
26、r:购物车中物品信息4.2数据库的逻辑设计根据以上需求分析,在确定了各个表主键字段的基础上,依据表与表之间相关字段之间的联系建立了各表之间的关系,对应的关系图如图4-1所示:cartselectedmerCartMerchandiseNumber PriceMoneyCartMemberMoneyCartstatusAdminAdmintypeAdminnameLoginnameLoginpwdMember MemberlevelLoginnameLoginpwdmembernamephoneaddresszipregdatelastdatelogintimesemailleavewordMe
27、mberAdminTitleContentordersMemberCartOrdernoOrderdateorderstatus categoryCatenameCatedescmemberlevelLevelnameFavourableMerchandise CategoryMernamePriceSpriceMermodelPictureMerdescLeavefactorydatespecial图4-1数据库逻辑图4.3 主要数据表的结构(1)图书信息表(merchandise)是用来保存网上书店每一种图书基本信息的数据表,是维护管理图书数据的依据,如表4-1图书信息表所示:表4-1图书
28、信息表字段名描 述类 型长 度是否允许为空是否主键Id书本idInt 4否是Category图书种类int4否否Manufacturer出版社char60否否MerName图书名称char40否否price图书价格Decimal8否否merdesc图书介绍Text255是否Leavefactorydate出版日期Datetime50是否Sprice特价decimal8否空(2)Member基本信息表记录了注册及登录成员的信息,包括用户的姓名、联系方式等信息,如表4-2图书信息表所示:表4-2图书分类基本信息表字段名描 述类 型长 度是否允许为空是否为主键Memberlevel用户idint4否
29、是Loginname登录名字char12否否membername用户姓名char12否否Loginpwd登录密码char12否否phone电话char15否否address地址varchar100否否zip邮编char10否否regdate注册日期datetime否否lastdate最后登录时间datetime否否logintimes登录次数int4否否email邮箱varchar100否否(3)管理员基本信息表(admin)存放了各种管理员的基本信息,包括管理员的登录名字,登录密码等基本信息,如表4-3图书信息表所示:表4-3管理员基本信息表字段名描述类型长度是否允许为空是否主键Admint
30、ype管理员类型Int4否是adminname管理员名字char12否否loginname管理员登录名字char12否否loginpwd管理员登录密码char12否否(4)订单信息表订单信息表(orders)存储的是订单的基本信息,具体如表4-4所示表4-4订单信息表字段名描述类型长度是否允许为空是否主键member用户Int4否是cart购物车Int4是否orderno订单号char20是否orderdate订单日期datetime是否orderstatus订单状态int4是否(5)购物车基本信息表购物车基本信息表(cart)存放的是购物车中的书籍的基本信息,具体如表4-4所示表4-5订单购
31、物车信息表字段名描述类型长度是否允许为空是否主键Member用户int4否是Money钱数计算decimal4否否Cartstatus购物车状态int9否4.4创建数据表脚本在基本的数据表的结构确定后,就可以在mysql中完成数据表的创建工作,下面给出建立对应数据表的SQL脚本。(1). 建立管理信息数据表REATE TABLE admin ( ID int(4) NOT NULL auto_increment, AdminType int(4) default NULL, AdminName char(12) default NULL, LoginName char(12) default
32、NULL, LoginPwd char(12) default NULL, PRIMARY KEY (ID) ENGINE=MyISAM AUTO_INCREMENT=7 DEFAULT CHARSET=gbk(2).建立图书信息数据表CREATE TABLE merchandise ( ID int(4) NOT NULL auto_increment, Category int(4) NOT NULL, MerName char(40) default NULL, Price decimal(8,2) default NULL, SPrice decimal(8,2) default NU
33、LL, MerModel char(40) default NULL, Picture varchar(100) default NULL, MerDesc text, Manufacturer char(60) default NULL, LeaveFactoryDate datetime default NULL, Special int(4) default NULL, PRIMARY KEY (ID) ENGINE=MyISAM AUTO_INCREMENT=17 DEFAULT CHARSET=gbk(3).建立用户信息数据表Create TableCREATE TABLE memb
34、er ( ID int(4) NOT NULL auto_increment, Memberlevel int(4) NOT NULL, LoginName char(12) default NULL, LoginPwd char(12) default NULL, MemberName char(20) default NULL, Phone char(15) default NULL, Address varchar(100) default NULL, Zip char(10) default NULL, RegDate datetime default NULL, LastDate d
35、atetime default NULL, LoginTimes int(4) default NULL, EMail varchar(100) default NULL, PRIMARY KEY (ID) ENGINE=MyISAM AUTO_INCREMENT=16 DEFAULT CHARSET=gbk(4).建立购物车信息数据表CREATETABLEcart(IDint(4)NOTNULLauto_increment,Memberint(4)NOTNULL,Moneydecimal(9,2)defaultNULL,CartStatusint(4)defaultNULL,PRIMARYK
36、EY(ID)ENGINE=MyISAMAUTO_INCREMENT=23DEFAULTCHARSET=gbk(5).建立订单信息数据表CREATETABLEorders(IDint(4)NOTNULLauto_increment,Memberint(4)NOTNULL,Cartint(4)NOTNULL,OrderNOchar(20)defaultNULL,OrderDatedatetimedefaultNULL,OrderStatusint(4)defaultNULL,PRIMARYKEY(ID)ENGINE=MyISAMAUTO_INCREMENT=19DEFAULTCHARSET=gbk
37、(6)购物车中物品信息表CREATETABLEcartselectedmer(IDint(4)NOTNULLauto_increment,Cartint(4)NOTNULL,Merchandiseint(4)NOTNULL,Numberint(4)NOTNULLdefault1,Pricedecimal(8,2)NOTNULLdefault0.00,Moneydecimal(9,2)NOTNULLdefault0.00,PRIMARYKEY(ID)ENGINE=MyISAMAUTO_INCREMENT=47DEFAULTCHARSET=gbk(7)category信息表CREATETABLEc
38、ategory(IDint(4)NOTNULLauto_increment,CateNamechar(40)defaultNULL,CateDesctext,PRIMARYKEY(ID)ENGINE=MyISAMAUTO_INCREMENT=5DEFAULTCHARSET=gbk(8)留言信息表CREATE TABLE leaveword ( ID int(4) NOT NULL auto_increment, Member int(4) NOT NULL, Admin int(4) default NULL, Title char(60) default NULL, Content text
39、, LeaveDate datetime default NULL, AnswerContent text, AnswerDate datetime default NULL, PRIMARY KEY (ID) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=gbk第5章 系统实现过程5.1开发平台服务器:Tomcat;数据库: Sql Server 2005;平台:myeclipse 操作系统:windows 75.2系统各组件实现5.2.1用户表示层在用户表示层中主要是一些相关的页面。该层对应的页面应该放在WEB应用目录根目录下。1.网上书店首
40、页:主要实现登录和注册功能。登录有2种情况,一个是管理员登录,另一个是用户登录,管理员登录后的页面是一些管理端的操作,而用户登录后的页面是图书列表及收藏夹和购物车还有1些评论。注册有各种信息的输入,在用户名一栏中,比如数据库中已经存在了一个用户名,如果一位用户申请的时候写了一个一模一样的用户名,则在点击旁边的“检查用户名是否存在”的按钮后会出现“此用户名已经存在”,提示重新输入一个其他的用户名。(1)注册的主要的代码如下protected void btnAdd_Click(object sender, EventArgs e) Accountmod.AccountId = tbusernam
41、e.Text.Trim(); Accountmod.AccountPwd = tbpwd.Text.Trim(); Accountmod.Auth = 0; Accountmod.Email = tbEmail.Text.Trim(); Accountmod.Logintimes = 0; Accountmod.LogIp = Request.ServerVariablesRemote_Addr.ToString(); Accountmod.Telephone = tbphone.Text.Trim(); Accountmod.TrueName = tbTruename.Text.Trim()
42、; Accountmod.Sex = RadioButtonList1.SelectedValue; Accountmod.Balance = 0; lbshow.Text = 用户注册成功!; Accountbll.Add(Accountmod); Panel1.Visible = false; protected void btnCheck_Click(object sender, EventArgs e) DataSet ds = Accountbll.GetList(AccountId= + tbusername.Text.Trim() + ); if (ds.Tables0.Rows.Count = 0) lbshow.Text = 该账户可以使用; btnAdd.Enabled = true; e