admin 管理员组

文章数量: 887032


2023年12月19日发(作者:adb shell下载)

毕 业 论 文

题 目

英文题目

基于JSP的网上超市系统

的设计与实现

Design And Implementation

Of Based On JSP Online

Supermarket System

信息科学与技术学院学士学位论文

毕业设计(论文)原创性声明和使用授权说明

原创性声明

本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。

作 者 签 名: 日 期:

指导教师签名: 日 期:

使用授权说明

本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。

作者签名: 日 期:

I

信息科学与技术学院学士学位论文

学位论文原创性声明

本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。

作者签名: 日期: 年 月 日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

涉密论文按学校规定处理。

作者签名: 日期: 年 月 日

II

信息科学与技术学院学士学位论文导师签名: 日期: 年 月 日

III

信息科学与技术学院学士学位论文注 意 事 项

1.设计(论文)的内容包括:

1)封面(按教务处制定的标准封面格式制作)

2)原创性声明

3)中文摘要(300字左右)、关键词

4)外文摘要、关键词

5)目次页(附件不统一编入)

6)论文主体部分:引言(或绪论)、正文、结论

7)参考文献

8)致谢

9)附录(对论文支持必要时)

2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。

3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。

4.文字、图表要求:

1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写

2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画

3)毕业论文须用A4单面打印,论文50页以上的双面打印

4)图表应绘制于无格子的页面上

5)软件工程类课题应有程序清单,并提供电子文档

5.装订顺序

1)设计(论文)

2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订

3)其它

IV

信息科学与技术学院学士学位论文摘 要

随着Internet飞速发展,互联网成为人们快速获取、发布和传递信息的重要渠道。它在人们的政治、经济、生活等各个方面发挥着重要作用。特别是对当代中国的白领来说,去超市购物逐渐成为令人头痛的事情。交通堵塞、排队结账使面临工作压力的年轻上班族越来越不愿意去超市。网上超市带给顾客全新的生活方式:只要点击几下鼠标,我们就可以将日常所需送到顾客的手中。网上超市是建立在网络上的一个虚拟的购物商场,避免了人们挑选商品的繁琐过程,使购物变得轻松、快捷、方便;同时又能有效的控制“商场”运营的成本,开辟了一个新的渠道。因此研究和开发网上超市系统对丰富人们生活,足不出户完成工作、学习、娱乐、购物等方面有着非常重要的意义。

系统采用JSP技术和Mysql数据库技术实现。

首先,论文简要介绍了网上超市系统开发的背景、目的和意义和国内外发展的现状,概述了开发本系统所涉及的理论知识及相关技术。

其次,论文详细地阐述了系统的需求分析和系统设计。通过采用面向对象的分析与设计方法,对网上超市系统进行需求分析。

再次,论文着重介绍了基于JSP技术的网上超市系统的开发过程、设计方法、软件的实现过程和测试结果,以及基于JSP的主要关键技术的实现。系统使用了Ajax 技术实现页面的无刷新提交。通过引入基于JSP技术以便使得系统的逻辑计算、页面层次、访问速度等方面得到改善。

最后,对论文所做的工作进行了总结,并展望下一步的完善与改进工作。

该网上超市系统综合了目前其它相关技术,外观设计简约,交流界面人性化,配合数据库管理,实用且易操作。

关键词: 网上购物,电子商务,网上超市系统

V

信息科学与技术学院学士学位论文

Abstract

With the rapid development of Internet, the Internet become people to quickly get,

distribution and transfer information important channel. It in people's political, economic,

and other aspects of life plays an important role. The Internet publishing information

mainly through the web site to realize. As people life level of, never leave home to

complete the job, study, entertainment, shopping have become people to the fast pace of

living the way a demand. The preliminary design realize the online shopping the basic

operation of the process, membership-based shopping system, perfect the function of the

web site.

This paper describes the design and implementation of e-commerce sites - the

purpose of online sales, process and the realization of various functions. Given the

systematic analysis of the site, described the webpage design, and introduces the contents

of the database and the main

implementation. This paper also summed up the main characteristics and functions of

webpage. Design simple, humanity communion interface, with database management,

practical and easy to operate.

The system use JSP technology and Mysql database technology.

Key words: Online Shopping, E-commerce, Online Supermarket

VI

信息科学与技术学院学士学位论文目 录

摘 要 ...................................................... I

Abstract ................................................... VI

1 绪论

1.1 系统开发背景 ............................................ 1

1.2系统实现的目标 ........................................... 2

1.3系统的开发意义 ........................................... 2

1.4本章小结 ................................................. 3

2 需求分析

2.1 系统非功能性需求 ......................................... 4

2.2系统功能需求 ............................................. 4

2.3 系统数据流程分析 ......................................... 5

2.4 环境需求 ................................................ 6

2.5 本章小结 ................................................ 8

3 系统设计

3.1 系统结构设计 ............................................ 9

3.2 数据库设计 ............................................. 16

3.3 本章小结 ............................................... 22

4 系统实现

4.1系统功能简介 ............................................ 23

VII

信息科学与技术学院学士学位论文

4.2 功能模块实现 ........................................... 23

4.3 数据库实现 ............................................. 33

4.4 本章小结 ............................................... 35

5系统测试

5.1 测试序号 ............................................... 36

5.2测试模块与运行 .......................................... 36

6总结与展望

致谢 ....................................................... 44

参考文献 ................................................... 45

VIII

信息科学与技术学院学士学位论文

1 绪论

1.1 系统开发背景

1.1.1网上购物的发展

近年来,随着Internet的迅速崛起,互联网已日益成为收集提供信息的最佳渠道并逐步进入传统的流通领域。于是电子商务开始流行起来,越来越多的商家在网上建起在线商店,向消费者展示出一种新颖的购物理念。

网上购物系统作为B2B,B2C(Business to Customer,即企业对消费者),C2C(Customer to Customer,即消费者对消费者)电子商务的前端商务平台,在其商务活动全过程中起着举足轻重的作用。本文主要考虑的是如何建设B2C的网上购物系统。

网上购物是一种具有交互功能的商业信息系统。它向用户提供静态和动态两类信息资源。所谓静态信息是指那些比经常变动或更新的资源,如公司简介、管理规范和公司制度等等;动态信息是指随时变化的信息,如商品报价,会议安排和培训信息等。网上购物系统具有强大的交互功能,可使商家和用户方便的传递信息,完成电子贸易或EDI交易。这种全新的交易方式实现了公司间文档与资金的无纸化交换。

1.1.2网上购物系统的现状

目前国内主流购物系统中采用ASP、PHP、JSP、JAVA语言开发占据80%,在模式上随着近年国内电子商务情势的大好,各购物系统开发商的兴起如雨后春笋一般。随着国家政策的支持和电子商务行业的高速发展,以后的购物系统发展路线必然走向标准化、国际化、智能化的市场道路。

2005年我国网民网上购物用户达2200万,比2004年增长38.6%,交易额高达135.05亿元。2007年通过B2B电子商务完成的交易额达到21239亿元,增长65.9%,1

信息科学与技术学院学士学位论文

实现的运营商营业收入达39亿元,增长49.1%。2008年6月底,网络购物用户人数达到6329万,半年内增加36.4%,全年我国电子商务类站点的总体用户覆盖已经从9000万户提升至9800万户,网络交易规模接近2700亿。根据我国电子商务研究中心发布的《2010年(上)电子商务市场数据检测报告》显示,截至2010年6月份,国内个人网店的数量已经达到了1200万家,且增长迅猛,预计今年年底网店数量将达到1300万家,直接从业人员超过130万人,间接带动就业近1000万人,市场交易额达到2.25万亿元,预计全年交易额将超过4.3万亿元。

由上面数据可以看出,中国的网上购物发展正蓬勃发展,充满活力,而基于JSP开发的电子商务网站更是国内外的主流,因此此系统的开发是符合社会的发展形式,是很有意义的。

1.2系统实现的目标

现在流行的网上购物系统不仅要有漂亮的网页,更要有严谨的规划,注重每一个细小的环节。这样才能使得在电子交易时避免不必要错误发生。我们将使用HTML、JSP等技术来编辑网页,并运用JDBC技术把数据库和动态网页相关联。传统的管理信息系统信息获取方法是由专业文字录入人员将信息输入到管理系统的数据库中,这种方法在数据量不大时有很多的应用场合。当数据量比较大,并且有较强的专业性时,录入的费用和出错的可能性都相应上升。本设计在实际应用中的解决方案是建立网站, 以及自己的数据库,使得所需商品信息可以及时的保存、更新,可以更好的及时了解商品买卖的情况。

1.3系统的开发意义

Internet的发展,为改变传统的商业运作模式提供了一种技术上的可行性的方案:利用Internet的技术和协议,建立各种企业内部网Intranet,企业外部网Extranet,通过廉价的通讯手段,将买家与卖家、厂商和合作伙伴紧密结合在了一起,消除时间与空间带来的障碍,从而大大的节约了交易成本,扩大了交易范围。2

信息科学与技术学院学士学位论文

而在实际的生活中,这种方案已经被广泛的运用到了实际的商业活动中了,人们将这种交易模式称为:电子商务。

当今比较流行的网上购物系统有“淘宝()”以及“当当()”。它们都是相当优秀的电子商务网站,对其他的网站提供了良好的典范。设计中可以学习参考他们的思想,了解和熟悉整个网站的开发流程及完整的电子商务网站应有的功能和注意事项。

设计和完成一个电子商务网站的,将会牵涉到许多技术上的问题,如:动态网页制作技术的,后台数据库的设计和管理,通过实际的制作个网站,可以避免纸上谈兵,在实践中掌握上述技术的使用。

1.4 本章小结

这一章节主要就是介绍了一下系统开发的目的以及意义,首先列出了网上超市的一些管理现状,只有很好的了解了当前网上超市的现状,那样才能对该系统进行设计前期的工作任务进行一个很好的规划,明确该系统的设计理念以及改系统要达到的目标,同时明确了本系统开发所涉及的核心技术。

3

信息科学与技术学院学士学位论文2 需求分析

2.1 系统非功能性需求

非功能性需求是指为满足用户业务需求必须具有但不是功能性需求的系统特性。虽然此需求与系统业务逻辑无直接关系,但也影响着系统的质量,不能忽视。本系统的非功能性需求主要包括以下几个方面:

(1)界面友好

本系统在功能完善的情况下,界面尽量做到简洁友好、便于操作,并应有效地防止误操作的发生。

(2)支持多用户并发访问

本系统属于一个多用户的网上购物系统,因此需要做到支持多用户的并发访问,并尽量控制到用户可接受的访问速度。

(3)安全性

互联网中存在的威胁无处不在,由于本系统基于Web开发,难免要受到安全性的挑战。因此,本系统应尽量避免威胁安全性的因素发生。

2.2系统功能需求

通过需求分析,确定本系统有以下一些基本功能:

 登录注册管理:注册时能够对用户名,密码的简单验证;能够对电子邮箱,Email进行有效性验证;能够防止利用页面刷新重复注册,以及已经注册的用户不能重复注册。

 商品浏览:分类显示商品;显示商品详情,提供购买链接。

 购物车管理:欲购买商品可以增添到购物车;也可以从购物车退回商品,清空购物车;对于同一件商品的多次购买只能在原来的商品上增添数量,还可以修改购物车中某个商品的数量,统计商品总金额。

4

信息科学与技术学院学士学位论文

 订单管理:只有登录的用户可下订单;用户可以查看自己的订单。管理员可以修改订单的状态。

 商品管理:管理员可以增添商品分类;修改商品基本信息;增添商品时候可以上传图片。

 用户管理:管理员对注册用户的维护。

2.3 系统数据流程分析

2.31 系统数据流图

通过对系统的网上超市的数据流动分析,得出数据流程如图2-1所示。

订单

商品

查看商品

加入购物车

有效订单

送货地址

结账

顾客

填写地址

商品

订单

管理商品信息

管理员

查看处理订单

管理用户信息

用户

图2-1 系统数据流图

5

信息科学与技术学院学士学位论文2.32 系统E-R图

通过对系统的网上超市的数据分析,得出E-R图如图2-2所示。

1

n

1 n

1

1

n

1

图2-2 系统E-R图

2.4 环境需求

2.41 开发平台

此系统开发选用的平台是Struts2+Java Server Page(简称JSP)+Mysql数据6

信息科学与技术学院学士学位论文

库,它适应于Windows操作系统并能很好的与其应用程序结合,而且Mysql数据库也易操作,从而大大降低了编程难度。具体如下:

 采用了Internet架构,Bowser/Server模式。

 Web服务器采用Tomcat5.5服务器,数据库管理系统为Mysql。

 采用了jdk1.6的环境

 开发工具使用Dreamweaver搭建系统页面框架,再利用Struts2自带的标签插入服务器端传过来的数据。

 在服务器端使用Myeclipse工具开发,利用Struts2框架处理业务。

2.42 系统开发工具

本系统是基于Struts2+JSP+Mysql数据库技术实现的,现对JSP技术和Mysql数据库以及Struts2框架作简要的介绍。

2.43 开发语言—JSP

JSP页面由HTML代码和嵌入其中的Java代码所组成。JavaBean是JSP的技术基础,而且大型的Web应用程序的开发需要JavaBean和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网等特点。JSP的技术的优势:

 一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不需要做任何更改。

 系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。

 JSP技术是用Java语言作为脚本语言的。Java语言是成熟的、强大的、易扩充的编程语言。

 高效性与安全性。JSP在执行前先被编译成字节码,字节码由Java虚拟机7

信息科学与技术学院学士学位论文解释执行,比源码解释效率高。

 可维护性。由于JSP技术是一种开放的、跨平台的结构,因此Web服务器、平台及其他组件能很容易升级或切换,且不会影响JSP基本的应用程序。

 多样化和功能强大的开发工具支持。Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。

2.44 数据库—Mysql

Mysql是Oracle公司的一款数据库产品,因为其小巧亦操作,却十分稳定,成为一些中小型项目和我们学习中最常用的数据库,在这里便使用了这款成熟稳定的数据库。

2.45 框架—Struts2

在Stru ts2出现之前,Struts1就是一个非常有名的框架,它实现了MVC模式。

之后出现的WebWork框架也是一个很优秀的框架,随着时间的发展,Struts1渐渐淘汰,有人用WebWork的核心并包装上Struts1,由此产生了更先进的技术—Struts2。Struts2是经典的MVC结构框架,将显示,控制,逻辑很好的分离,可以使我们开发起来更具延展性。

2.5 本章小结

这一小节主要是明确系统开发的需求分析,明确系统要实现的功能,确立系统的功能模块,按照系统开发的流程,先申述系统的管理概述,继而就确立系统要实现的功能模块,最后确立系统的用户角色需求的定位,本需求分析报告的目的是规范化本软件的编写,旨在于提高软件开发过程中的能见度,便于对软件开发过程中的控制与管理,同时提出了网上超市系统的软件开发过程,便于程序员与客操作者之间的交流、协作,并作为工作成果的原始依据,同时也表明了本软件的共性,以期能够获得更大范围的应用。

8

信息科学与技术学院学士学位论文

3 系统设计

3.1 系统结构设计

本系统课分为前后台两个部分,共有用户登录注册、商品展示、购物车、结账、后台管理五大模块

网上购物系统前台功能结构如图3-1所示

网上购物系统前台

会员管理

商品展示

购物车

结账

会员登陆注册会员资料管理会员订单查询分类展示销售排行掌柜推荐新品上架添加商品移除商品恢复移除的商品生成订单填写送货信息选择之前填写过的地址

网上购物系统后台功能结构如图3-2所示

网上购物系统后台

图3-1 系统前台功能结构图

后台登录商品维护会员维护订单维护退出后台

图3-2 系统后台功能结构图

9

信息科学与技术学院学士学位论文系统处理业务流程如图3-3所示

图3-3 业务流程图

主要可将本购物系统分为五个模块

10

信息科学与技术学院学士学位论文1. 登陆注册模块

首页

登陆 注册

不正确填写信息

验证

正确验证

个人首页

(1)首先进入主页面时,先载入一些静态元素和左边栏、右边栏两个只需显示文字的动态数据,而其他的几个div版块,如站长推荐,热销版,新上架等模块都是通过AJAX技术异步加载进页面。

(2)登陆时加上了javascript验证表单。

(3)注册时加上了javascript验证表单,在填写email即用户名的时候,通过失去焦点事件和Ajax技术向服务器发送异步请求查询用户名是否存在,并在注册页面局部刷新提示用户,验证码也是通过Ajax技术实现。

(4)注册页面提交后,会出现一个验证邮箱提示,服务器向用户邮箱发送了一个验证码,用户需要填写验证码才能完成注册,如果不进行验证,下次登录是还会提示验证,不能使用用户功能。

(5)输入邮箱验证码后,完成注册。

注册成功

图3-4 登陆注册流程图

11

信息科学与技术学院学士学位论文2. 商品查看与展示

(1)在首页主要构成是左边栏、右边栏、站长推荐、热卖商品、新品上架等。左边栏显示的是商品分类信息,一个大类,下面是小类,如:图书(大类),

世界名著、历史军事、小说文学(小类);右边栏是“新品热销版”,显示的是最近一个月上架的商品的销售排行NO.1~~NO.8;站长推荐,显示通过随机查询的商品,有商品图片,商品名,商品介绍等信息;“热卖版”是通过销量查询显示的商品;“新品上架”是通过添加时间查询最近添加的商品。

(2)从左边栏点击分类进去查看商品信息,会进入商品列表页面,左边栏显示当前进入的这个大类别已经它所有的子类别,并显示各分类的商品数目及大分类的商品总数目,中间栏显示的是当前选中的类别的所有商品列表,显示了商品图片,商品名,价格,介绍等,每个商品下有“购买”选项,可以添加到购物车,实现了翻页功能,每页显示3件商品信息,可以选择排序方式,如按上架时间排序,按销量排序。

(3)通过主页面其他地方或者商品列表点击可以进入单独的商品信息页面,有较为详细的商品信息,同样可以购买,实现了放大镜功能,通过鼠标放在图片上会显示大图片。

(4)通过通过任意商品链接进入商品的详细信息信息页面,有较为详细的商品信息,显示了商品的图片、价格、库存、厂商等详细信息,在此页面同样也可以将商品加入购物车,还能选择商品的个数。

(5)商品的所有显示都是从数据库中读取,其中图片存放在固定文件夹中,数据库中存放的是图片地址。

12

信息科学与技术学院学士学位论文

3. 购物车模块

查看商品

添加到购物车

添加成功

查看购物车

恢复删除商品删除商品修改数量结账

登陆检查

(1)不管有无登录,都可以使用购物车,首先查看商品,点击购买,如果商品已经购买,购物车只会添加一次。

(2)添加完毕,点击“购物车”查看添加到购物车的商品,在购物车查看页面,可以看到添加的商品名,原价,本网站价格,以及数量,还有商品的总价,节约价格。

(3)在购物车页面可以有一下操作:修改数量、删除、恢复、结账。

“修改数量”可以更新需要买的商品数量,默认为1,“删除”将商品从要购买的列表删除,出现在下面以删除的列表中,“恢复”即可以将删除列表的商品恢复到

图3-5 购物车流程图

13

信息科学与技术学院学士学位论文

要购买的列表中,“结账”即将要生成订单,结账功能需要登录才能使用,未登录的会自动跳转登陆页面。

(4)本购物车使用的是session+cookie技术,即购物车中得数据会在

浏览器端进行备份,失效时间为1天,如果关闭浏览器,下次再登录还可以从浏览器中取得数据。

4. 生成订单

结账

是否登陆

生成订单

填写地址

登陆

选择老地址 填写新地址 保存新地址

订单提交

图3-6 订单流程图

(1)首先根据购物车里的数据生成一个不能修改的表单,供用户确认,确认后可点击结账。

14

信息科学与技术学院学士学位论文

(2)点击结账,系统会拦截没有登陆的客户,跳转到登陆界面,登陆后才能继续操作。

(3)接着跳转到地址填写界面,如果是老客户,并且以前有过送货地址,可以通过下拉列表选择地址,如果想填写新地址则选择新地址,并且填写,填写后提交会生成新地址,下次可以通过选择地址,直接选择。

(4)地址填写无误,提交,向服务器发送请求,插入数据库,生成订单成功。

5. 会员信息用户登录

查看个人信息修改部分信息查看订单查看收藏夹

(1)用户登录后可以查看一些个人信息,如用户名,性别,电话,最后登录时间,最后登录IP地址等信息。

(2)用户登陆后可以修改部分个人信息,如用户名,电话。

(3)用户可以查看所有的订单信息,以及订单当前状态。

(4)用户可以查看之前添加的喜欢的商品。

图3-7 会员功能流程图

15

信息科学与技术学院学士学位论文3.2 数据库设计

本系统数据库采用Mysql5数据库,系统数据库名称为d_shop,共包含8张表。

a. d_user表 用户注册信息表

用户信息表主要用来保存用户主要信息。表d_user的结构如表3—1所示。

表3-1 d_user表

字段名

id

email

nickname

password

user_integral

is_email_verify

email_verify_code

last_login_time

last_login_ip

数据类型

int

Varchar

varchar

varchar

int

char

varchar

bigint

varchar

长度

12

50

50

50

12

3

50

15

主键或外键

pk

id:d_user表的主键

Email:用户注册邮箱

Nickname:用户昵称

Password:用户密码

User_integral:用户的积分

Is_email_verify:用户是否验证邮箱

Email_verify_code:邮箱验证码

16

信息科学与技术学院学士学位论文Last_login_time:最后登录时间

Last_login_ip:最后登录IP地址

b. d_receive_address表 用户收货地址表

表3-2 d_receive_address表

字段名

Id

User_id

Receive_name

Full_address

Postal_code

Mobile

Phone

数据类型

Int

Int

Varchar

Varchar

Varchar

Varchar

Varchar

长度

12

12

20

200

8

15

20

主键或外键

Pk

Fk

Id:address表的主键

User_id:对应用户的id号,外键,用于连接两表

Receive_name:收货人姓名

Full_address:收货地址

Postal_code:邮编

Mobile:移动电话

Phone:固定电话

c. d_category表 产品类别表

表3-3 d_category表

字段名

Id

Turn

En_name

数据类型

Int

Int

Varchar

长度

12

10

200

主键或外键

Pk

17

信息科学与技术学院学士学位论文Name

Description

Parent_id

Varchar

Varchar

Int

200

200

10

Id:d_category表主键

Turn:产品顺序

En_name:产品英语名

Name:产品中文名

Description:产品类别描述

Parent_id:产品父类的类别Id

d. d_product表 各种类型产品的共有信息表

表3-4 d_product表

字段名

Id

Product_name

Description

Add_time

Fixed_price

Here_price

Keywords

Has_deleted

Product_pic

Total_num

Sell_num

数据类型

Int

Varchar

Varchar

Bigint

Double

Double

Varchar

Int

Varchar

Int

Int

长度

12

100

100

20

200

1

200

11

11

主键或外键

Pk

Id:d_product表的主键

18

信息科学与技术学院学士学位论文 Product_name:产品名

Description:产品描述

Add_time:产品添加时间

Fixed_price:产品原价

Here_price:本站价格

Keywords:关键字

Has_deleted:是否被删除

Product_pic:产品图片

Total_num:产品进购总数量

Sell_num:销售数量

e. d_goods表 产品的特有信息表

表3-5 d_goods表

字段名

Id

Brand

Author

Publishing

Publish_time

Guarantee_period

standard

Word_number

Which_edition

Total_page

int

Varchar

Varchar

Varchar

4

15

15

15

数据类型

Int

Varchar

Varchar

Varchar

Bigint

Int

长度

12

50

200

200

20

2

主键或外键

Pk、fk

19

信息科学与技术学院学士学位论文barcode

Author_summary

Print_time

Varchar

Text

Int

25

20

Id:主键

Brand:品牌

Author :作者

Publishing:厂商或出版社

Publish_time :生产日期或出版时间

guarantee_period:保质期

standard :规格

Word_number:字数

Which_edition :几次修订

Total_page :总页数

Barcode :条形码

Author_summary:作者介绍

Print_time:出版次数

f. d_category_product表 类别和产品关系表(用于连接category表和product表)

表3-6 d_category_product表

字段名

Id

Product_id

Cat_id

数据类型

Int

Int

Int

长度

12

10

10

主键或外键

Pk

Fk

Fk

Id:主键

Product_id:产品id

Cat_id:类别id

20

信息科学与技术学院学士学位论文

g. d_order表 订单信息表

表3-7 d_order表

字段名

Id

User_id

Status

Order_time

Order_desc

Total_price

Receive_name

Full_address

Postal_code

Mobile

Phone

数据类型

Int

Int

Int

Bigint

Varchar

Double

Varchar

Varchar

Varchar

Varchar

Varchar20

长度

10

10

10

20

100

100

200

8

20

主键或外键

Pk

Id:d_order表主键

User_id:订单所对应的用户

IdStatus:订单状态

Order_time:订单提交时间

Order_desc:订单描述

Receive_name:收货人姓名

Full_address:收货地址

Postal_code:邮编

Mobile:移动电话

Phone:固定电话

h. d_item表 订单明细表

21

信息科学与技术学院学士学位论文

表3-8 d_item表

字段名

Id

Order_id

Product_id

Product_name

Here_price

Product_num

Amount

数据类型

Int

Int

Int

Varchar

Double

Int

Double

长度

12

10

10

100

10

主键或外键

Id:d_item表主键

Order_id:对应的订单id

Product_id:订单中产品的id号

Product_name:订单中产品名

Here_price:产品单价

Product_num:购买的数量

Amount:此条产品的价格小计

3.3 本章小结

此章节介绍的是数据库的一些详细信息,数据库是一个项目的心脏,所有的数据存储在数据库中,如何将各种不同数据之间的关系设计好是最重要的,哪些字段设置为主键,哪些字段设置为外键,以及不同数据表之间的关系,是一对一、一对多还是多对多的关系,都需要根据具体的系统业务来设计,经过此系统较为复杂的数据库的设计,大大提高了我对数据的理解。

22

信息科学与技术学院学士学位论文4 系统实现

系统实现是软件项目开发过程中的主要部分,在系统实现中要有简洁、美观、可读性好、整体统一等准则。

4.1系统功能简介

本系统分为前后台两个部分,共有用户登录注册、商品展示、购物车、结账四大模块。

登录注册管理:注册时能够对用户名,密码的简单验证;能够对电子邮箱,Email进行有效性验证;能够防止利用页面刷新重复注册,以及已经注册的用户不能重复注册。

商品浏览:分类显示商品;显示商品详情,提供购买链接。

购物车管理:欲购买商品可以增添到购物车;也可以从购物车退回商品,清空购物车;对于同一件商品的多次购买只能在原来的商品上增添数量,还可以修改购物车中某个商品的数量,统计商品总金额。

订单管理:只有登录的用户可下订单;用户可以查看自己的订单。管理员可以修改订单的状态。 商品管理:管理员可以增添商品分类;修改商品基本信息;增添商品时候可以上传图片。

4.2 功能模块实现

4.21. 用户登录注册实现

首先是会员登录,登录后能够下订单,本系统的登录界面如下:

23

信息科学与技术学院学士学位论文

图4-1 用户登录界面

首先是会员登录,登录后能够下订单,本系统的注册界面如下:

图4-2 用户注册界面

本系统主要对实现网上超市出售商品以及管理员管理,下面是网上超市系统的注册的核心代码。

package ;

import rmat;

import DateFor

24

信息科学与技术学院学士学位论文

public class RegistAction {

private User user;

public User getUser() {

return user;

}

public void setUser(User user) {

= user;

}

public String execute(){

UserDAO userDao = new UserDAOImpl();//调用持久层操作数据库

try {

String phone = ne();

n(phone);

String pwd1 = sword();

n(pwd1);

String pwd = eDegistCode(sword());

n(pwd);

sword(pwd);

rIntegral(0);

/*

* 获取上次登录时的时间和ip

* 登录时间是当前系统时间

* ip通过request来取得

* */

long time = tTimeMillis();

String str = "yyyy年MM月dd日 HH:mm ";

DateFormat dd = new SimpleDateFormat(str);

Date d = new Date(time);

String tt = (d);//将long型时间转换成dateformat型

tLoginTime(tt);

String ip = uest().getRemoteAddr();

tLoginIp(ip);

ilVerify(false);

String verifyCode = VerifyCode();

ilVerifyCode(verifyCode);

(user);

Map session = text().getSession();

25

信息科学与技术学院学士学位论文

("user", user);

//ail(il(), "验证码"+verifyCode);

return "success";

} catch (Exception e) {

// TODO: handle exception

return "error";

}

}

}

userDao中的关键代码:

public void save(User user) throws Exception{

Connection conn = nection();//创建连接

PreparedStatement stm = eStatement(INSERT);

ing(1, il());

ing(2, kname());

ing(3, sword());

(4, rIntegral());//给sql变量设置值

if(lVerify()){

ing(5, "T");

}else{

ing(5, "F");

}

String str = "yyyy年MM月dd日 HH:mm ";

DateFormat dd = new SimpleDateFormat(str);

String time = tLoginTime();

Date d = (time);

long tt = e();

ing(6, ilVerifyCode());

g(7, tt);

ing(8, tLoginIp());

ing(9, ne());

eUpdate();//执行sql语句

}

26

信息科学与技术学院学士学位论文4.22. 商品展示实现

其次是商品展示,展示商品的信息,本系统的登录界面如下:

图4-3 主界面商品展示

27

信息科学与技术学院学士学位论文

图4-4商品详细展示

本系统主要对实现网上超市出售商品以及管理员管理,下面是网上超市系统商品展示的核心代码。

public Goods showOneGoods(int id) throws SQLException {

// TODO Auto-generated method stub

Connection conn = nection();

PreparedStatement stm = eStatement(FINDGOODS);

(1, id);

ResultSet rs = eQuery();

Goods goods = null;

if(()){

/*

* 循环查询结果,给goods赋值

*/

goods = new Goods();

28

信息科学与技术学院学士学位论文

}

(("id"));

ductName(ing("product_name"));

cription(ing("description"));

gPrice(ble("dang_price"));

if(("has_deleted")==0){

Delete(false);

}else{

Delete(true);

}

nd(ing("brand"));

hor(ing("author"));

lishing(ing("publishing"));

String str = "yyyy年MM月";

DateFormat dd = new SimpleDateFormat(str);

long t = g("publish_time");

Date d = new Date(t);

String tt = (d);

lishTime(tt);

ranteePeriod(("guarantee_period"));

horSummary(ing("author_summary"));

alNum(("total_num"));

lNum(("sell_num"));

}

return goods;

4.23. 购物车实现

再是购物车实现,可以存入商品,本系统的购物车界面如下:

图4-5 系统购物车界面

29

信息科学与技术学院学士学位论文

本系统主要对实现网上超市出售商品以及管理员管理,下面是网上超市系统购物车的核心代码。

public class OrderDAOImpl extends BaseDAO implements OrderDAO{

//先定义好所有的sql语句

private static final String INSERT_ITEM = "insert into d_item " +

"(order_id,product_id,product_name,dang_price,product_num" +

",amount) values(?,?,?,?,?,?)";

private static final String INSERT_ORDER = "insert into d_order" +

"(user_id,status,order_time,order_desc,total_price,receive_name," +

"full_address,postal_code,mobile,phone) values" +

"(?,?,?,?,?,?,?,?,?,?)";

private static final String INSERT_ADDRESS = "insert into d_receive_address" +

"(user_id,receive_name,full_address,postal_code,mobile,phone) values"

+

"(?,?,?,?,?,?)";

private static final String FIND_BY_UID = "select * from d_order where

user_id=? and order_time=?";

private static final String UPDATE_BY_PRICE = "update d_order set total_price

=? where id=?";

public void addItem(int id,long time) throws SQLException{

double totalPrice = 0;

PreparedStatement stm = getConnection().prepareStatement(INSERT_ITEM);

Map session = text().getSession();

Cart cart = (Cart)("cart");//放入到session中

List list = ();

Order order = new Order();

order = findByUid(id,time);

int orderId = ();

for(CartItem c : list){

if(()==true){

totalPrice += ().getDangPrice()*();

(1, orderId);

(2, ().getId());

ing(3, ().getProductName());

30

信息科学与技术学院学士学位论文 ble(4, ().getDangPrice());

(5, ());

ble(6, ()*().getDangPrice());

eUpdate();

}

}

update(totalPrice,orderId);

}

private Order findByUid(int userId,long time) throws SQLException{

PreparedStatement stm =

getConnection().prepareStatement(FIND_BY_UID);

(1, userId);

g(2,time);

Order order = new Order();

String str = "yyyy年MM月dd日 HH:mm ";

DateFormat dd = new SimpleDateFormat(str);

ResultSet rs = eQuery();

if(()){

(("id"));

rId(userId);

tus(("status"));

long t = g("order_time");

Date d = new Date(t);

String tt = (d);

erTime(tt);

erDesc(ing("order_desc"));

alPrice(ble("total_price"));

eName(ing("receive_name"));

lAddr(ing("full_address"));

talCode(ing("postal_code"));

ile(ing("mobile"));

ne(ing("phone"));

}

return order;

}

31

信息科学与技术学院学士学位论文4.24. 订单结账实现

最后是订单结账功能,本系统的界面如下:

图4-6 系统订单结算界面

图4-7 系统填写送货地址界面

本系统主要对实现网上超市出售商品以及管理员管理,下面是网上超市系统购订单的核心代码。

public long addOrder(Address addr) throws SQLException{

Date date = new Date();

long time = e();

32

信息科学与技术学院学士学位论文 PreparedStatement stm =

getConnection().prepareStatement(INSERT_ORDER);

(1, rId());

(2, 0);

g(3, time);

ing(4, "这是一本好书");

ble(5, 0);

ing(6, eName());

ing(7, lAddr());

ing(8, talCode());

ing(9, ile());

ing(10, ne());

eUpdate();

return time;

}

public void addAddr(Address addr) throws SQLException{

PreparedStatement stm =

getConnection().prepareStatement(INSERT_ADDRESS);

(1, rId());

ing(2, eName());

ing(3, lAddr());

ing(4, talCode());

ing(5, ile());

ing(6, ne());

eUpdate();

}

4.3 数据库实现

使用JDBC连接池技术连接Mysql数据库

Jdbc连接池技术可以支持多个jdbc连接,即多用户同时调用jdbc,通过设定最大连接数,最小连接数,最大等待数,闲暇时最大连接数等参数对用户访问数进行控制。

连接池代码:

package ;

import tion;

import eption;

import ties;

33

信息科学与技术学院学士学位论文

import urce;

import ataSourceFactory;

public class DBUtil {

private static DataSource dataSource;//定义数据源

private static ThreadLocal connLocal

= new ThreadLocal();//创建一个本地线程

static {

try {

Properties props = new Properties();

(ssLoader()

.getResourceAsStream("ties"));

//读取配置文件中的连接池配置

dataSource = DataSource(props);

} catch (Exception e) {

// TODO: handle exception

tackTrace();

}

}

public synchronized static Connection getCOnnection() throws SQLException{

Connection conn = ();//创建连接

if(conn==null){

conn = nection();

(conn);//取得连接

}

return conn;

}

public synchronized static void closeConnection() throws SQLException{

Connection conn = ();

(null);

if(conn!=null && !ed()){

();//关闭连接

}

}

}

配置文件代码:

driverClassName=//数据库驱动

url=jdbc:mysql://localhost:3306/8shop?useUnicode=true&characterEncoding=utf8//项目地址

34

信息科学与技术学院学士学位论文username=root//账号

password=1234//密码

initialSize=3

maxActive=15

maxIdle=2

minIdle=1

maxWait=30000

4.4 本章小结

此系统是一个小型的网上超市系统,但是在开发的过程中发现要做一个完整的系统需要的技术是很多的,并不是3、4种技术就能做出来的,需要各种跟编程有关或无关的技术相互整合,才能开发一个良好的系统,也让我明白了为什么开发一个大型的系统需要许多人一个团队的协作才能完成。在开发的过程中许多需要的技术都不懂或者用的不熟练,只有不停地查资料问百度,在这个过程中学习到了很多新知识,让我受益匪浅。

35

信息科学与技术学院学士学位论文5系统测试

5.1 测试序号

表5-1 测试序号表

序号

1

2

3

4

测试名称

添加顾客账号

商品显示

顾客登陆

管理购物车

可以填写新地址,如果存在老5 填写送货地址

地址可以直接选择

描述说明

添加注册用户信息

按目录关键词搜索商品

登陆

添加、删除、更新购物车中信

5.2测试模块与运行

5.2.1添加顾客账号

1. 测试内容

5-2 添加顾客账号测试表

步骤

1

测试描述说明

已存在用户名

重新输入用户名

提示密码无效,重新输2

3

无效密码

入密码

有效用户名和密码 注册成功 测试结果:OK

测试结果:OK

预期结果

提示此用户名已存在,测试结果:OK

实际结果和测试数据

36

信息科学与技术学院学士学位论文4

6

不填表单提交

验证码刷新与验证

不能提交

正常属性能够验证

测试结果:OK

测试结果:OK

图5-1 顾客注册界面

5.2.2商品展示测试

1. 测试内容

表5-3 添加顾客账号测试表

步骤

1

测试描述说明

根据销量排行

预期结果

倒序输出数据库中销实际结果和测试数据

测试结果:OK

37

信息科学与技术学院学士学位论文量前几的商品名

能够显示商品的详细2 显示商品信息

信息,也能购买

能够根据选择改变输3 可选择排序方式

出的顺序

4 分页 能够分页显示 测试结果:OK

测试结果:OK

测试结果:OK

图5-2 根据销量排行界面

38

信息科学与技术学院学士学位论文

图5-3 购买商品界面

图5-4 分页排序界面

5.2.3顾客登陆

1. 测试内容

表5-4 顾客登陆测试表

步骤

1

2

3

测试描述说明

有效用户名和密码

预期结果

登陆

实际结果和测试数据

测试结果:OK

测试结果:OK

测试结果:OK

用户名和密码不匹配 重新输入用户名和密码

密码无效 提示无效密码

2. 运行界面

39

信息科学与技术学院学士学位论文

图5-5 登陆界面

5.2.4管理购物车

1. 测试内容

表5-5 管理购车测试表

步骤

1

2

3

4

5

测试描述说明

更新商品数量

添加,没有此商品

添加,有此商品

删除

恢复

到购物车中

预期结果

数量更改

加入购物车中

不重复添加

在购物车下面出现

将删除的商品重新添加测试结果:OK

实际结果和测试数据

测试结果:OK

测试结果:OK

测试结果:OK

测试结果:OK

2. 运行界面

图5-6 购物车

40


本文标签: 系统 商品 技术 用户 开发