🙊作者简介:多年一线开发工作经验,原创团队,分享技术代码帮助学生学习,独立完成自己的网站项目。
作者完整代码目录供你选择:
⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目展示
摘 要
随着社会的不断进步与发展,人们经济水平也不断的提高,于是对各行各业需求也越来越高。特别是从2019年新型冠状病毒爆发以来,利用计算机网络来处理各行业事务这一概念更深入人心,由于用户工作繁忙的原因,去市场购买商品也是比较难实施的。如果开发一款网上购物商城系统,可以让用户在最短的时间里享受到最快捷的服务,提高管理员的整体工作水平,简化工作程序,这对用户、商家和管理员来说都是一件非常乐意的事情。
本论文针对商品信息、秒杀商品、平台资讯的特点,采用JAVA等编写语言,springboot框架,以MySQL为数据库,B/S为系统构架,对网上购物商城系统进行设计和开发。通过使用本系统可有效地减少运营成本,提高管理效率。
关键词:网上购物商城系统;JAVA语言;springboot框架 网上购物商城系统
一、绪论
(一)研究背景
20世纪,随着科学技术的飞速发展,数字化和信息化成为了一个新的发展趋势,信息化的经营方式成为了各个行业的追求的目标,而信息化的经营方式更是成为了人们追求的目标。目前,我国高等院校工程技术和电子管理学已经将信息化技术作为必修课[1]。
在当今社会,人们的生活节奏逐渐加快,人们对经济的要求逐渐降低,越来越多的人开始追求简单、快捷的方式。然而,随着用户工作繁忙的原因,去市场购买商品的人已经越来越少了。更多人会选择居家在网站上购买商品,在此基础上,我进行了思考,如果可以开发一款在系统前台可以购买商品,后台可以进行发货的系统,对于用户、商家来说会不会更方便呢?对管理员来说,可以管理商品信息、秒杀商品、平台资讯等,不仅能做到随时更新,更能提高管理效率,非常方便[2]。
(二)社会调查
较好的线上管理软件,能根据用户的需求,开发不同的产品提供用户使用,还可根据客户实际需求做调整或是二次开发。所以希望能通过调研来收集更多信息,完善自己的软件系统。
不同市场所使用的软件开发商都不一样,但软件程序十分相似,在本次调研中,我以市场的佳成软件作为主要调研对象。佳成软件一般有C/S,B/S两种构架。C/S构架即Client/Server结构,市场将服务器安装在本地,其他机器以安装客户端的形式连接服务器,以实现数据同步。B/S构架全称为Browser/Server。B/S构架的产品就是把服务器放在互联网上,使用者通过浏览网页来使用系统。选择B/S构架的市场的所有数据,包括商品信息、秒杀商品等都会通过互联网的服务器来保存。B/S构架不需要安装,拥有一个浏览器即可访问,面向范围以更广。维护也足够简单,更新页面,即可实现面对所有用户的更新,因此也跟适合中小型市场。
据调研了解,佳成软件主要运用的VS和SQL两种开发工具[3]。
VS是领先于业内的数据库工具,应用程序可体现行业需求,而这些需求是由最了解它们的个别专家定义的,因而使工程更加完美。它有高效的体系结构指导,客户可使用业界标准方法来表达应用程序的体系结构和功能,提高开发团队的效率。
SQL是一种应用广泛的数据库管理系统,具有许多显著的优点,如:易用性、适合分布式组织的可伸缩性、用于决策支持的数据仓库功能、与许多其他服务器软件紧密关联的集成性、良好的性价比等适用于大型或超大型数据库服务器端。
经调研发现,该软件主要优点在于强大而方便的功能,减轻了工作负担。但也仍有不足之处,如部分系统操作过于复杂,数据导入容易搞混,导致信息查询失败。而这些也恰恰是目前大部分信息管理系统的通病[4]。
(三)研究意义
开发网上购物商城系统,不仅可以改善用户去市场购买商品难、查看商品信息难和秒杀商品难的局面,还可以提供管理效率,同时也可以增强网站的竞争力。利用网上购物商城系统,可以有效地提高系统的人事的效率和信息化水平,快速了解信息更新及服务的进度。这既可以确保系统服务的品质,又可以降低管理者的工作压力[5]。
(四)研究内容
网上购物商城系统主要分为管理员和用户、商家。
用户前台主要的功能为:注册登录、修改个人信息、商品信息、秒杀商品、平台资讯等功能。
管理员后台主要功能为:用户、商家、商品分类、商品信息、秒杀商品等功能[6]。
商家后台主要功能为:商品信息、秒杀商品、订单信息等功能。
二、关键技术介绍
(一) Spring Boot框架
Spring Boot是近几年最为流行的后台开发框架,它的诞生一改过去Spring框架开发中繁琐的配置,极大地简化了Spring应用的搭建和开发。Spring Boot框架不仅保有了Spring框架中的所有优秀特性,还通过使用特定的配置方式,在底层帮助开发人员在工程创建是就预先做了很多配置,这样在开发时就不再需要开发人员过多进行繁琐的配置了。另外在Spring Boot中集成了大量框架,这就使得开发人员不再需要到处寻找在导入开发中需要依赖的jar包,同时也解决了依赖包版本冲突问题,从而提高了依赖包引用的稳定性,从而实现了对Spring应用搭建和开发过程的简化。
(二)Java语言
Java是一种在Web应用开发中得到广泛使用的脚本语言,经常被用来对用户的相关行为做出反应。它还具有面向对象的设计能力,使设计开发过程更加直观和模块化,并在HTML基础上进行交互Web页面的开发。这种脚本语言的问世,使用户与页面之间的实时、动态交互成为现实,丰富了页面的内容,增强了页面的活力。另外,Java技术也被广泛地运用于该系统,比如对用户输入的数据进行检测,以保证其有效性。Java技术可以在不依赖Web服务程序的基础上在本地客户机上运行。从而有效地解决了因网络速度所带来的迟缓问题,使用户能够更加顺畅、快捷地进行访问。一些功能,比如用户的数据输入,可以通过JavaScript这样的客户语言来完成。该系统采用Java客户机进行用户身份认证,确保了系统的安全性和可靠性。
(三)MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品。MySQL谁最流行的关系型数据库管理系统之一,在Web应用方面,MySQL是最好的RDBMS(关系型数据库管理系统)应用软件之一。
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小,速度快,总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
(四)B/S架构
B/S这一结构模式和互联网的发展密不可分,它是对C/S的改进,因为以前的C/S结构需要在电脑上进行安装,比如我们最常使用的QQ、杀毒软件、办公软件等等,都是C/S结构开发的,但是随着互联网的发展,人们已经不满足于C/S这种结构,更想要一种能够实现信息数据共享的结构体系,鉴于人们需求的变化,诞生了B/S这一结构,改不了以往需要直接访问服务器的方式(即C/S模式),让用户通过浏览器就可以去实现访问服务器。这种体系结构不仅使得开发出的程序访问更为便捷,而且还减少了更新维护成本,提高交互性。
B/S架构具有以下优点:
(1) 无需安装专门的软件
(2) 服务器上的负荷显然减少了,并且局部可以进行实时更新。
三、系统分析
进行网上购物商城系统的开发,首先需要进行系统需求分析。对用户需求进行调研,接着设计系统的体系构造和数据库表构造,确定使用的开发工具和后台数据库。
系统分析的重点是对用户和系统的需求进行相关分析,包括对系统的需求进行分析。在系统的分析中,要介绍目前系统的运行过程,并对目前的系统的问题进行分析,给出业务需求,且一并给出相应的解决方案,然后将其应用于平时的管理之中。
(一)业务需求分析
首先,对现在业务需求进展描述。当前,我国大部分企业普遍存在着资本规模小、人员素质差、管理不规范等问题,基本停留在人工录入的阶段。因此不可避免地导致了经营过程的低效,且易出现错误。然而,在市场上出现的各种信息管理系统,往往都是几万元乃至几十万元,因为操作过于繁琐,对于一般市场来说,使用起来比较困难,维护起来也不方便[7]。在服务行业蓬勃发展的今天,在平时的管理中涉及到的各类业务信息也变得复杂起来,面对不断增长的信息量,利用MIS提高工作效率是非常有必要的,因此,制定一套专门的网上购物商城系统就是一个很好的办法。利用网上购物商城系统进行信息的处理,具有传统的人工记录所不能比拟的优势,它可以实现对数据的规范化,同时也可以对进度进行科学的统计,并快速地查找,从而到达提高工作效率、服务质量的目的。本文在对网上市场管理的实践中,提出了实现工作信息化的必要性。
易于操作;快速反应;准确的记录和方便的操作是评价一个系统服务质量的重要指标,它可以提高服务质量,并让用户迅速得到有关的信息。:
1. 使用不便。
2. 信息管理复杂。
3. 效率低,安全性及准确率不够。以往的进度控制方法是以人力进行的,这就造成了人力资源的浪费,且工作效率极低[8]。
本文在对上述问题进行归纳和剖析后,针对上述问题,给出了相应的改进措施:利用MySQL数据库技术,将商品信息、秒杀商品等信息存储在预先设定的相应的数据表单中,并利用程序技术进行信息的分类处理,从而达到可以动态地更改信息的目标。用户只要搜索一下关键字,就能找到所需要的信息,系统还能根据用户的收藏或搜索量,使用协同过滤的算法进行推荐相关信息。用户只要提交相应的要求,就能得到相应的反馈。运用电脑、手机技术和数据库技术,极大地提高了的工作质量,为用户提供了便利。
1. 管理员需求分析
管理员端的功能主要是开放给系统的管理人员使用,能够对用户的信息进行管理,包括对用户管理、商家管理、商品分类管理、商品信息管理、秒杀商品管理、系统管理进行查看,修改和删除、新增等,对系统整体运行情况进行了解。
管理员用例分析图,如图3-1所示。

图3-1管理员用例分析图
2. 用户需求分析
用户的功能主要是对个人账号和密码进行更新信息,然后对首页、商品信息、秒杀商品、平台资讯、购物车、个人中心进行查询详情操作。
用户用例分析图,如图3-2所示。

图3-2用户用例分析图
3. 商家需求分析
商家的功能主要是对个人账号和密码进行更新信息,然后对系统首页、个人中心、商品信息管理、秒杀商品管理、订单管理进行查询详情操作。
商家用例分析图,如图3-3所示。

图3-3商家用例分析图
(二)系统可行性分析
1. 技术可行性
该平台采用java语言,springboot框架,而Eclipse则是利用MySQL进行数据库的选择,在数据库的开发中,SQL是最高效、最简洁的,在这个体系中,Eclipse是最安全、最稳定的。由于它的使用方便,无论是开发者,还是管理员,都可以轻松地使用它们。综合来看,解决技术上的问题是切实可行的[9]。
2. 经济可行性
针对本系统而言,需要一系列的硬软件支持,主要硬软件及相关费用如下:需要CPU为400MHz及以上的处理器的计算机,硬盘空间为100M及以上即可,除此之外,相关的设备的安装工作都比较简单,并且设计开发软件的本钱也不高,都相比照较简单,所以只需要对客户进展相关的提示工作便可以让其成功地使用本系统,故本系统的本钱是非常低的。综上所述,本系统在经济上也是可行的。
3. 操作可行性
在网上购物商城系统方面,目前已经有许多成功的网上市场管理信息化系统在支撑系统的运营。就本系统而言,操作简捷,适合大部分市场或个人使用。无论是对业务过程的系统的处理,还是对市场的系统的运用,都能够很好地适应系统的正常运作需求。综上所述,本系统在操作上也是可行的[10]。
四、系统设计
(一)系统的框架设计
该体系结构将以MVC模型作为体系结构,其体系结构上将其划分为三个层次:表示级、服务级、数据库级。采用MVC模型的思路,实现了各个业务的分离,实现了多个功能的高内聚和低耦合。在代码编写中,对通用代码、相同逻辑代码进行精化和包装,以提升代码使用效率,并使代码逻辑更为清楚[11]。
1. 表示层:网页浏览器是展示层面的主体,使用者可以透过网页浏览进入该网页。利用java技术在前端网页中的应用,通过Ajax技术来与后台的业务服务进行交互,以满足网页的局部动态改变。
2. 逻辑层:当系统使用者在进入该体系之后,能够在该层呼叫该业务的业务函数界面。其中,有几个商业运作界面,即:商品信息、秒杀商品是系统运作的保证,它将随着统一的商业逻辑应用而被自动地应用。
3. 数据库:该系统使用MySQL实现对数据的持久性管理,为了实现数据的标准化、简化和快速的存储,将会引进MybatisORM持久性架构。
(二)系统功能模块设计
网上购物商城系统在设计与实施时,采取了模块性的设计理念,把相似的系统的功能整合到一个模组中,以增强内部的功能,减少各组件之间的联系,从而达到减少相互影响的目的。如商品信息、秒杀商品模块等[12]。
管理员后台主要功能是:用户管理、商家管理、商品分类管理、商品信息管理、秒杀商品管理、系统管理等功能。系统功能模块图如图4-1所示。

图4-1系统功能模块图
(三)数据库设计与实现
在每一个系统中数据库有着非常重要的作用,数据库的设计得好将会增加系统的效率以及系统各逻辑功能的实现。所以数据库的设计我们要从系统的实际需要出发,才能使其更为完美的符合系统功能的实现。
1. 概念模型设计
概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。
商家信息实体体属图如下所示。

图4-2商家信息实体属性图
用户信息实体属图如下所示。

图4-3用户信息实体属图
商品信息实体属图如下所示。

图4-4商品信息实体属图
秒杀商品实体属图如下所示。

图4-5秒杀商品实体属图
(四)数据库逻辑结构设计
在本系统中,采用的是目前比较主流的MySQL数据库,并且设计了几个数据表如下所示:
表4-1:订单
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
orderid |
varchar |
200 |
订单编号 |
|
|
|
tablename |
varchar |
200 |
商品表名 |
|
miaoshashangpin |
|
userid |
bigint |
|
用户id |
|
|
|
goodid |
bigint |
|
商品id |
|
|
|
goodname |
varchar |
200 |
商品名称 |
|
|
|
picture |
longtext |
4294967295 |
商品图片 |
|
|
|
buynumber |
int |
|
购买数量 |
|
|
|
price |
float |
|
价格 |
|
0 |
|
discountprice |
float |
|
折扣价格 |
|
0 |
|
total |
float |
|
总价格 |
|
0 |
|
discounttotal |
float |
|
折扣总价格 |
|
0 |
|
type |
int |
|
支付类型 |
|
1 |
|
status |
varchar |
200 |
状态 |
|
|
|
address |
varchar |
200 |
地址 |
|
|
|
tel |
varchar |
200 |
电话 |
|
|
|
consignee |
varchar |
200 |
收货人 |
|
|
|
remark |
varchar |
200 |
备注 |
|
|
|
logistics |
longtext |
4294967295 |
物流 |
|
|
|
zhanghao |
varchar |
200 |
商户名称 |
|
|
|
goodtype |
varchar |
200 |
商品类型 |
|
|
表4-2:平台资讯
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
title |
varchar |
200 |
标题 |
|
|
|
introduction |
longtext |
4294967295 |
简介 |
|
|
|
picture |
longtext |
4294967295 |
图片 |
|
|
|
content |
longtext |
4294967295 |
内容 |
|
|
表4-3:秒杀商品
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
shangpinmingcheng |
varchar |
200 |
商品名称 |
|
|
|
shangpinfenlei |
varchar |
200 |
商品分类 |
|
|
|
pinpai |
varchar |
200 |
品牌 |
|
|
|
tupian |
longtext |
4294967295 |
图片 |
|
|
|
shangpinxiangqing |
longtext |
4294967295 |
商品详情 |
|
|
|
zhanghao |
varchar |
200 |
账号 |
|
|
|
shangjiariqi |
date |
|
上架日期 |
|
|
|
onelimittimes |
int |
|
单限 |
|
|
|
alllimittimes |
int |
|
库存 |
|
|
|
clicktime |
datetime |
|
最近点击时间 |
|
|
|
reversetime |
datetime |
|
倒计结束时间 |
|
|
|
price |
float |
|
价格 |
|
|
表4-4:商品信息评论表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
refid |
bigint |
|
关联表id |
|
|
|
userid |
bigint |
|
用户id |
|
|
|
avatarurl |
longtext |
4294967295 |
头像 |
|
|
|
nickname |
varchar |
200 |
用户名 |
|
|
|
content |
longtext |
4294967295 |
评论内容 |
|
|
|
reply |
longtext |
4294967295 |
回复内容 |
|
|
表4-5:秒杀商品评论表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
refid |
bigint |
|
关联表id |
|
|
|
userid |
bigint |
|
用户id |
|
|
|
avatarurl |
longtext |
4294967295 |
头像 |
|
|
|
nickname |
varchar |
200 |
用户名 |
|
|
|
content |
longtext |
4294967295 |
评论内容 |
|
|
|
reply |
longtext |
4294967295 |
回复内容 |
|
|
表4-6:配置文件
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
name |
varchar |
100 |
配置参数名称 |
|
|
|
value |
varchar |
100 |
配置参数值 |
|
|
表4-7:用户表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
username |
varchar |
100 |
用户名 |
|
|
|
password |
varchar |
100 |
密码 |
|
|
|
role |
varchar |
100 |
角色 |
|
管理员 |
|
addtime |
timestamp |
|
新增时间 |
|
CURRENT_TIMESTAMP |
表4-8:token表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
userid |
bigint |
|
用户id |
|
|
|
username |
varchar |
100 |
用户名 |
|
|
|
tablename |
varchar |
100 |
表名 |
|
|
|
role |
varchar |
100 |
角色 |
|
|
|
token |
varchar |
200 |
密码 |
|
|
|
addtime |
timestamp |
|
新增时间 |
|
CURRENT_TIMESTAMP |
|
expiratedtime |
timestamp |
|
过期时间 |
|
CURRENT_TIMESTAMP |
表4-9:购物车表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
tablename |
varchar |
200 |
商品表名 |
|
miaoshashangpin |
|
userid |
bigint |
|
用户id |
|
|
|
goodid |
bigint |
|
商品id |
|
|
|
goodname |
varchar |
200 |
商品名称 |
|
|
|
picture |
longtext |
4294967295 |
图片 |
|
|
|
buynumber |
int |
|
购买数量 |
|
|
|
price |
float |
|
单价 |
|
|
|
discountprice |
float |
|
会员价 |
|
|
|
zhanghao |
varchar |
200 |
商户名称 |
|
|
|
goodtype |
varchar |
200 |
商品类型 |
|
|
表4-10:收藏表
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
userid |
bigint |
|
用户id |
|
|
|
refid |
bigint |
|
商品id |
|
|
|
tablename |
varchar |
200 |
表名 |
|
|
|
name |
varchar |
200 |
名称 |
|
|
|
picture |
longtext |
4294967295 |
图片 |
|
|
|
type |
varchar |
200 |
类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注) |
|
1 |
|
inteltype |
varchar |
200 |
推荐类型 |
|
|
|
remark |
varchar |
200 |
备注 |
|
|
表4-11:地址
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
userid |
bigint |
|
用户id |
|
|
|
address |
varchar |
200 |
地址 |
|
|
|
name |
varchar |
200 |
收货人 |
|
|
|
phone |
varchar |
200 |
电话 |
|
|
|
isdefault |
varchar |
200 |
是否默认地址[是/否] |
|
|
表4-12:关于我们
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
title |
varchar |
200 |
标题 |
|
|
|
subtitle |
varchar |
200 |
副标题 |
|
|
|
content |
longtext |
4294967295 |
内容 |
|
|
|
picture1 |
longtext |
4294967295 |
图片1 |
|
|
|
picture2 |
longtext |
4294967295 |
图片2 |
|
|
|
picture3 |
longtext |
4294967295 |
图片3 |
|
|
表4-13:用户
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
yonghuming |
varchar |
200 |
用户名 |
|
|
|
mima |
varchar |
200 |
密码 |
|
|
|
xingming |
varchar |
200 |
姓名 |
|
|
|
touxiang |
longtext |
4294967295 |
头像 |
|
|
|
xingbie |
varchar |
200 |
性别 |
|
|
|
youxiang |
varchar |
200 |
邮箱 |
|
|
|
shouji |
varchar |
200 |
手机 |
|
|
|
money |
float |
|
余额 |
|
0 |
|
vip |
varchar |
200 |
是否会员 |
|
否 |
表4-14:商品信息
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
shangpinmingcheng |
varchar |
200 |
商品名称 |
|
|
|
shangpinfenlei |
varchar |
200 |
商品分类 |
|
|
|
tupian |
longtext |
4294967295 |
图片 |
|
|
|
pinpai |
varchar |
200 |
品牌 |
|
|
|
zhanghao |
varchar |
200 |
账号 |
|
|
|
shangjiariqi |
date |
|
上架日期 |
|
|
|
shangpinxiangqing |
longtext |
4294967295 |
商品详情 |
|
|
|
onelimittimes |
int |
|
单限 |
|
|
|
alllimittimes |
int |
|
库存 |
|
|
|
clicktime |
datetime |
|
最近点击时间 |
|
|
|
price |
float |
|
价格 |
|
|
|
vipprice |
float |
|
会员价 |
|
-1 |
表4-15:商品分类
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
shangpinfenlei |
varchar |
200 |
商品分类 |
|
|
表4-16:商家
|
字段名称 |
类型 |
长度 |
字段说明 |
主键 |
默认值 |
|
id |
bigint |
|
主键 |
主键 |
|
|
addtime |
timestamp |
|
创建时间 |
|
CURRENT_TIMESTAMP |
|
zhanghao |
varchar |
200 |
账号 |
|
|
|
mima |
varchar |
200 |
密码 |
|
|
|
shangjiaxingming |
varchar |
200 |
商家姓名 |
|
|
|
xingbie |
varchar |
200 |
性别 |
|
|
|
touxiang |
longtext |
4294967295 |
头像 |
|
|
|
youxiang |
varchar |
200 |
邮箱 |
|
|
|
lianxidianhua |
varchar |
200 |
联系电话 |
|
|
|
money |
float |
|
余额 |
|
0 |
五、系统实现
(一)前台用户功能模块
当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到网上购物商城系统的导航条显示首页、商品信息、秒杀商品、平台资讯、购物车等。系统首页界面如图5-1所示:

图5-1 系统首页界面
点击用户注册,用户通过注册页面填写用户名、密码、确认密码、姓名、头像、性别、邮箱、手机等信息,并点击注册操作,如图5-2所示。

图5-2用户注册界面图
点击用户登录,用户通过登录页面输入账户、密码,并点击登录操作,如图5-3所示。

图5-3用户登录界面图
用户点击商品信息;在商品信息页面的搜索栏输入商品名称、商品分类,进行查询,然后可以查看商品名称、商品分类、图片、品牌、上架日期、单限、库存、价格、会员价等信息,如有需要可以添加到购物车、立即购买、收藏和评论等操作;如图5-4所示。

图5-4商品信息界面图
购物车:用户将想要购买的商品加入购物车,加入购物车后可以增减数量、删除、点击购买,可一键清除失效商品,如图5-5所示。

图5-5购物车界面图
用户点击个人中心,在个人中心页面对用户名、密码、姓名、头像、性别、邮箱、手机、是否会员,进行更新信息,还可以对我的订单、我的地址、我的收藏进行详细操作,如图5-6所示。

图5-6个人中心界面图
(二)后台管理员功能模块
管理员如果要登录到系统后台,首先得先通过输入用户名、密码、选择角色进行登录的操作。管理员登录界面如图5-7所示。

图5-7管理员登录界面
管理员登录到系统后台后,可以对系统首页、个人中心、用户管理、商家管理、商品分类管理、商品信息管理、秒杀商品管理、系统管理等功能模块进行管理;如图5-8所示。

图5-8管理员功能界面
管理员点击用户管理,在用户管理页面,对用户名、姓名、头像、性别、邮箱、手机、是否会员等内容,进行查询或者新增、删除用户信息等操作,如图5-9所示。

图5-9用户管理界面图
管理员点击商家管理,在商家管理页面,对账号、商家姓名、性别、头像、邮箱、联系电话等内容,进行查询或者新增、删除商家信息等操作,如图5-10所示。

图5-10商家管理界面图
管理员点击商品分类管理,在商品分类管理页面,对商品分类等内容,进行查询或者删除商品分类等操作,如图5-11所示。

图5-11商品分类管理界面图
管理员点击商品信息管理,在商品信息管理页面,对商品名称、商品分类、图片、品牌、上架日期、单限、库存、价格、会员价等内容,进行查询或者删除商品信息等操作,如图5-12所示。

图5-12商品信息管理界面图
管理员点击秒杀商品管理,在秒杀商品管理页面,对商品名称、商品分类、品牌、图片、账号、上架日期、单限、库存、价格等内容,进行查询或者删除秒杀商品等操作,如图5-13所示。

图5-13秒杀商品管理界面图
(三)后台商家功能模块
商家注册、登录,商家通过注册、登录页面输入信息完成后,并点击注册或者登录操作,如图5-14所示。


图5-14商家注册、商家登录界面图
商家登录系统后,可以对系统首页、个人中心、商品信息管理、秒杀商品管理、订单管理等功能进行相应操作,如图5-15所示。

图5-15商家功能界图面
六、系统测试
(一)系统测试的方法
1. 白盒测试法
所谓白盒测试是指一种以流程为基础的结构测试、逻辑驱动测试或以流程为基础的测试方式,也就是对系统的具体测试[13]。白箱试验是预先设置一个特殊的条件或者一个周期的用例,其目的是为了实现对该体系的内部构造进行穷举性的检测。在白盒测试期间,主要对下列系统程序进行如下试验:
(1) 对系统程序中的全部单独的运行通路进行一次最小的试验;
(2) 对两种情形下的“真”与“假”进行逻辑判断,至少进行一次;
(3) 在一个系统周期的过程中,对它的周期和操作进行试验;
(4) 检验系统内的资料架构是否有效。
2. 黑盒测试法
所谓的黑盒测试,就是根据一个已经存在的程序的功能架构,对其进行实验,以确定其全部的性能是否符合规定。在使用黑箱试验方法进行系统程的检测时,将其视为一个完整的系统,而不能了解其所使用的是何种体系,而仅仅将其视为一个不可开启的箱子。采用“黑盒子”检测技术,可以对系统是否满足用户的要求进行检测,对系统的各项功能是否正常运行,对系统的数据是否进行了正确的检测和处理[14]。
使用了一个黑盒测试来检测下列的bug:
(1) 对该过程进行初始化和结束时的差错;
(2) 是否有系统接口出错;
(3) 输入和输出的数据结果有无错误;
(4) 对该数据库进行存取的过程中出现了故障;
(5) 体系的错误;
(6) 系统的功能是否有疏忽或错误;
综合以上的检测方式,并根据本系统的特性,采用黑盒测试,白盒测试作为辅助手段,综合检测该系统的各项功能和性能。
(二)系统测试用例
表6-1 登录测试表
|
测试用例编号 |
预置条件 |
输入 |
预期输出 |
实际结果 |
|
1 |
无 |
不输入 |
登录失败 |
登录失败 |
|
2 |
系统中所不存在的账号 |
账号:0003 密码:984 |
登录失败 |
登录失败 |
|
3 |
账号和密码不能对应 |
账号:0047 密码:156121 |
登录失败 |
登录失败 |
|
4 |
输入错误的验证码信息 |
账号:0013 密码:123456 |
登录失败 |
登录失败,提示验证码错误 |
|
5 |
输入正确的账号以及密码 |
账号:1242 密码:1124 |
登录成功 |
登录成功 |
|
6 |
输入正确的账号以及密码 |
账号:2721 密码:425425 |
登录成功 |
登录成功 |
表6-2 商品信息管理测试表
|
测试用例 编号 |
测试工程 |
测试内容 |
测试 结果 |
功能实现情况 |
|
1 |
新增商品信息 |
在商品信息管理页面,点击新增的按钮,通过输入商品名称、商品分类、图片、品牌、上架日期等信息,点击提交的按钮 |
新增 成功 |
实现 |
|
2 |
商品信息管理 |
修改商品信息 |
修改成功 |
实现 |
|
3 |
商品信息管理 |
删除商品信息 |
删除成功 |
实现 |
通过对该网上购物商城系统用户登录场景、商品信息管理场景等功能的测试,该系统虽然功能不是很强大,但是根本满足了用户需求,能实现商品信息、秒杀商品等信息的管理,为了顺利地完成系统测试的任务,为网上购物商城系统所提供的测试系统环境为Windows8\\10等操作系统,所使用的数据库为MySQL数据库。通过完整的多次测试,网上购物商城系统能够在这些操作系统中正常运行,并且根本实现了预期设计的功能。系统设计严密性,安全性较高,各种记录信息完整,各种数据间相互联系,功能实现正常。
七、结论
网上购物商城系统是现代比较先进,并且有利于网上市场管理的软件之一,以计算机这个跨时代的网络技术,日新月异的互联网,网上购物商城系统也会随着时间更新而更全面更安全更经济。网上购物商城系统满足了用户的需求,能够获取更多的利润并取得市场的领先地位。
当前有关于商品的市场是我国一个充满竞争的商业效劳市场,如果想这场剧烈的竞争中得以生存下去,就必须不断地提高自己的效劳水平以及工作效率。想要在同行业中取得市场领先的地位,那么必须对随时变化的客户需求快速地做出反响,来及时地满足客户需求,到达获得客户认可的目的。本论文所设计的网上购物商城系统很好地满足了用户的相关需求,并解决了市场等存在的很多缺点。对于服务行业而言,由于客户量很多,所以所需要处理的信息都非常大,出于对安全性的考虑,采用了目前较为先进的系统设计、开发及集成经历,本系统的开发了一个符合我国服务行业发展行情的网上购物商城系统,充分提高了我国服务行业的功能效率,提升了客户的体验感。在实现设计过程当中,也会出现很多问题,许多问题都要靠自己摸索,自己的学习能力有限,所以还存在很多缺乏的地方。通过本次的毕业设计,我从中学习到了许多知识的同时也发现了自己的一些缺点。
参考文献
[1] 杨艳华. 探讨高质量java项目开发技巧 [J]. 电子技术与软件工程, 2019(02): 197.
[2] 何继安. 标准化与质量管理结合提升家政服务水平 [A]. 中国标准化协会. 第十四届中国标准化论坛论文集 [C]. 中国标准化协会, 2020: 5.
[3] 杨阳. 对《java程序设计》课程的教学改革研究和探索 [J]. 软件, 2019, 38(06): 146-149.
[4] 石坤泉, 杨震伦. 基于MySQL数据库的数据隐私与安全策略研究 [J]. 网络安全技术与应用, 2020(01): 79+81.
[5] 牛小宝. 基于MySQL的云数据库设计与实现 [D]. 南京邮电大学, 2019: 23-45.
[6] 王晓华. 试析MySQL数据库性能的调优 [J]. 电脑编程技巧与维护, 2021(22): 48+82.
[7] 刘学芬, 孙荣辛, 夏鲁宁, 李伟. 面向MySQL的安全隐患检测方法研究 [J]. 信息网络安全, 2019(09): 1-5.
[8] 韩兵, 王照清, 廖联军. 基于MySQL多表分页查询优化技术 [J]. 计算机系统应用, 2020, 25(08): 171-175.
[9] 马帅. 论MySQL数据库教程开设的必要性 [J]. 现代交际, 2019(13): 252.
[10] 郭静. 基于java的动态网页开发技术 [J]. 科技展望, 2021, 26(03): 10-11.
[11] 杨艳华. 探讨高质量springboot项目开发技巧 [J]. 电子技术与软件工程, 2019(02): 197.
[12] 刘晓峥. 浅析基于java技术的JavaBean和Servlet [J]. 科技视界, 2020(34): 241+269.
[13] 李罡. 计算机网络安全分层评价防护体系研究 [D]. 吉林大学, 2019: 230+245.
[14] Andrew S.Tanenbaum著, 潘爱民译. 计算机网络(第4版) [M]. 北京: 清华大学出版社, 2020: 101-163.
[15] 崔娜. springboot的网络数据库连接技术探讨 [J]. 黑龙江科技信息, 2019(36): 259.
[16] 陈孝威, 陈凌云. 三层体系结构的客户机/服务器 [J]. 计算机应用, 2019(01): 23-26.
[17] Camelia Muñoz-Caro, Alfonso Niño, Sebastián Reyes, Miriam Castillo. APINetworks Java. A Java approach to the efficient treatment of large-scale complex networks [J]. Computer Physics Communications, 2019: 207-218.
[18] Simone Hanazumi, Ana C.V. de Melo. A Formal Approach to implement java exceptions in cooperative systems [J]. The Journal of Systems & Software, 2020: 200-268.
致 谢
在学校的过程中,我刻苦学习,最后完成了学生时代的最后一项作业,也就是我的毕业设计,在这个过程中遇到了很多困难,但是我都尽自己全部力量来将其解决,当然在这个过程中我获得了很多人的帮助,所以要对他们表示感谢。首先要感谢的是我的学校XXXX学院,因为它的丰富资源,提供了很多帮助。还要感谢我的指导老师XX,由于她孜孜不倦的教诲,让我学会了很多知识。
在我做毕业设计的过程中,有很多同学朋友都对我有过帮助,他们乐于助人、无私奉献的精神深深地感染了我,在这里一并对他们表示感谢,在以后的工作生活中我也要将这种精神传承下去。我也学到了在集体生活中的那种荣誉感和团结意识。
核心代码展示
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
项目推荐
【计算机毕业设计】各项技术选题汇总
【计算机毕业设计】基于Springboot的网上购物商城销售系统
【计算机毕业设计】开题报告模板2
【计算机毕业设计】任务书案例2
【网站项目】基于springboot的在线考试系统
【网站项目】基于springboot的4S店车辆管理系统
【软件设计】基于python的高校资产管理系统
【网站项目】python009基于推荐算法的电影推荐系统
【网站项目】基于Springcloud的分布式架构网上商城
⬇️文章末尾可以获取联系方式,需要源码,高清图片,演示视频可以联系(不开源)⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡






