摘 要:随着计算机技术,网络技术的迅猛发展,Internet 的不断普及,网络在各个领域里发挥了越来越重要的作用。特别是随着近年人民生活水平不断提高,在线销售给商家的业务带来了更大的发展机遇。
在经济快速发展的带动下,服务行业的发展也是越来越快速。人们对有机食品的获取需求很大。在互联网飞速发展的今天,制作一个有机食品线上销售系统是非常必要的。本网站是借鉴其他人的开发基础上,用MySQL数据库和JSP定制了有机食品线上销售系统。系统前台实现了用户注册、登录、有机食品、个人中心、购物车、在线客服等功能,并且还可以修改密码、个人信息修改等功能。系统的后台实现了用户、食品分类、有机食品、系统管理、订单管理等功能添加、删除和修改。
本系统的开发使有机食品线上销售系统能够更加方便快捷,同时也使有机食品线上销售系统变的更加系统化、有序化。系统界面较友好,易于操作。
关键字:有机食品线上销售系统;JSP技术;MySQL数据库;SSM框架
1 引言
1.1 背景和意义
在Internet高速发展的今天,计算机的应用几乎完成覆盖我们生活的各个领域,互联网在经济,生活等方面有着举足轻重的地位,成为人们资源共享,信息快速传递的重要渠道。伴随着我国经济的不断发展,服务行业也在不断地发展。在服务行业不断发展的同时,也会出现不同的问题,比如:人们对于有机食品的需求量在不断增加,由于2020年新型冠状病毒疫情的发生,有些人属于防范区域或者管控区域等等,不允许外出购买商品,导致了很多商家面临倒闭的现象,也导致了服务行业的发展出现了空前绝后的危机。如何让商家在艰难的疫情中生存下来?成了很多商家思考的问题。
以往商家的工作,往往以实体店为主,有需求的人们到店购买食品,这样的方式已经不能满足人们的需求了。我思考了以JSP为技术、MYSQL作为数据库开发一个有机食品线上销售系统,让用户足不出户也可以在家登录网站进行购买食品。此网站还可以满足用户查看有机食品信息,进行购买等功能,非常方便。
本系统为了数据库结构的灵活性所以打算采用MySQL来设计数据库,而JSP技术,SSM框架,B/S架构则保证了较高的平台适应性。本文主要介绍了本系统的开发背景,所要完成的功能和开发的过程,主要说明了系统设计的重点、设计思想。
1.2 现状和趋势
现今,越来越多的人乐于选择一项合适的管理方案,但是管理人员往往受到管理经验的限制,这时各类在线销售系统迅速崛起,大量进入人们生活,在这样成功的管理模式背景下,不仅有机食品线上销售系统越来越多,有机食品线上销售系统的管理功能也越来越多。
当今世界的主题是和平与发展。但是由于新型冠状病毒疫情的影响,很多国家、很多地区的服务行业都处于停滞的状态。在这样的前提下,很多在线销售系统出现了,例如美国Good Eggs,是一个提供送货上门服务的网购平台,为顾客提供本地生产的有机食品和肉类、农产品和其他副产品;国内如拼多多、淘宝、京东等,由于疫情的影响,很多小商家面临着经济压力,已经没有更多的资金去入注这些网站了。所以我开发的基于JSP的有机食品线上销售系统,可以帮助很多小商家解决问题,让他们在资金投入少的前提下,让公司能正常运营。
1.3 项目研究内容。
有机食品线上销售在管理方面的任务繁琐,以至于每年都在管理这方面投入较多的精力却效果甚微,有机食品线上销售系统的目标就是为了能够缓解商家工作方面面临的压力,让有机食品线上销售管理方面的工作变得更加高效准确。
本项目在开发和设计过程中涉及到原理和技术有: B/S、JSP、SSM、MySQL数据库等等。
1.4 论文结构
第一部分:引言。剖析项目背景,说明研究的内容。
第二部分:开发技。系统主要使用了JSP技术,B/S模式和MySQL数据库,并对此做了介绍。
第三部分:系统分析。包括了系统总体结构、对系统的性能、功能、数据库进行了分析。
第四部分:系统总体设计。对系统管理员和用户的功能进行描述,对系统进行测试。
第五部分:总结心得。在论文最后结束章节总结了开发这个系统和撰写论文时候自己的总结、感想,包括致谢。
2 系统开发技术
2.1 JSP技术介绍
JSP Server Pages技术是由Sun微软公司发布的,Sun微软公司利用JSP技术来开发动态Web应用的一项技术。它的特征是简单易学又可跨平台操作,在众多动态Web应用程序设计语言中最为合适,利用短短几年的时间就已经形成了一套完整的规范,并广泛地应用于电子商务等各个领域中。在国内,JSP已经得到了大家的重视,有了很好的发展,越来越多的动态网站开始采用JSP技术。
2.2 MySQL数据库介绍
利用MySQL的数据独立性、安全性等特点,在软件项目中对数据进行操作,可以保证数据准确无误,并降低了程序员的应用开发时间。
MySQL的特点是支持多线程,能方便的对系统资源充分利用,有效提高速度,还提供多种方式途径来对数据库进行连接;MySQL的功能相对弱小、规模也小,但本系统要求不高,MySQL完全可以满足本系统使用。
利用MySQL建立系统数据库,不仅有利于数据处理业务的早期整合,还能利于发展后两种数据扩展的操作。
2.3 MySQL环境配置
(1) 本系统的数据使用的是MySQL,所以要将MySQL安装到指定目录,如果下载的是非安装的MySQL压缩包,直接解压到指定目录就可以了。然后点击C:\Program Files\MySQL\bin\winMySQLadmin.exe这个文件其中C:\Program Files\MySQL是MySQL安装目录。输入winMySQLadmin的初始用户、密码(注:这不是MySQL里的用户、密码)随便填不必在意,确定之后右下角任务的启动栏会出现一个红绿灯的图标,红灯亮代表服务停止,绿灯亮代表服务正常,左击这个图标->winnt->install the service 安装此服务,再左击这个图标->winnt->start the service 启动MySQL服务。
(2) 修改MySQL数据库的root密码。用cmd进入命令行模式输入如下命令:
cd C:\Program Files\MySQL\bin
MySQLadmin -u root -p password 123
回车出现Enter password: ,这是要输入原密码. 刚安装时密码为空,所以直接回车,此时MySQL 中账号 root 的密码被改为 123 安装完毕。
2.4 B/S架构
B / S架构,主要有表示逻辑层,控制逻辑层,数据层这三层。表示逻辑层:服务请求这一功能主要是逻辑层的,Web服务器准备好后,服务请求最先被发送。等到最先发送的请求被服务器接收到后,然后将接受到的请求信息在web服务器上进行识别,识别这一操作是由服务器执行操作的,只要经过服务器的识别请求操作之后再将接收到的信息返回给客户端,浏览器就能收到的请求的信息。控制逻辑层:用户的请求是由将控制逻辑层接收,相应程序和数据库连接是接收用户数据的请求的首要条件,然后处理请求信息数据,请求数据经过处理后返回给Web服务器的就是最终处理完成的结果,最后返回给客户端的最终结果再次通过Web服务器。数据层:服务器从Web服务器接收请求是数据层主要任务,但还包括执行数据库查询、修改、删除操作,最后数据库操作结果将返回网络服务器。表示逻辑层,控制逻辑层和数据层三层之间的关系具有独立性,但三层之间又具有藕断丝连的相互关联的特性。
图2-1 B/S模式三层结构图
2.5 SSM框架
当今流行的“SSM组合框架”是Spring + SpringMVC + MyBatis的缩写,受到很多的追捧,“组合SSM框架”是强强联手、各司其职、协调互补的团队精神。web项目的框架,通常更简单的数据源。Spring属于一个轻量级的反转控制框架(IoC),但它也是一个面向表面的容器(AOP)。SpringMVC常常用于控制器的分类工作模式,与模型对象分开,程序对象的作用与自动取款机进行处理。这种解耦治疗使整个系统的个性化变得更加容易。MyBatis是一个良好的可持续性框架,支持普通SQL查询,同时允许对存储过程的高级映射进行数据的优化处理。
3 系统分析与设计
3.1 网站性能需求分析
对网站性能进行分析,可对系统反应度、界面简洁清晰度、储存能性、易学性和稳定性进行分析;
系统反应度:同时上万人在线时反应时间应该在两三秒以内。
界面简洁清晰:系统界面要求简单明了,操作简单,用户操作容易上手。
储存性能高:有机食品线上销售系统中需要存储的信息有很多,所以对系统的存储量要求很高,因此数据库就应该很强大,才能保证信息能安全稳定的进行存储;
易学性:该系统在操作上必须简单好上手,没有很多复杂的操作,只需要简单的进行学习就能操作该系统。
稳定性:要求有机食品线上销售系统运行要稳定,界面清楚、字体清晰等。
3.2 可行性分析
3.2.1 经济可行性
有机食品线上销售系统,主要面向的是电脑用户,成本并不高,对于系统的维护和调试,只需要一个人就可以完成,所以在人力方面,投入的也很少。虽然说人力和资金的投入并不多,但是面临的收益是十分可观的,特别是由于目前比较特殊的疫情时期,很多大型超市或者商家都会将管理的目标转移到电子科技上,知识是无价的。在未来,很多商家投入的人力资源和资金不会太多,但却又能保证商家运转继续进行。这对整个商家的发展是非常有利的。
3.2.2 技术可行性
本系统开发选择JSP技术,JSP技术是一个完全面向对象的技术,JSP为开发者提供了丰富的类库,大大减少了使用windows编程的难度,减少开发人员在设计算法上的难度,作为JSP开发Eclipse更是一个必不可少的角色,它友好的界面,以及强大的功能,给程序开发人员带来了很多方便,加上环境简单,转移方便,无疑使此系统最佳的选择。所以后台设计选择使用MySQL数据库主要用来的建立和维护信息。对于前台开发要求应具备功能完善、易于操作等优点,后台数据库的要求则是能够建立和维护数据信息的统一性和完整性。
依据上述目标来分析本系统的硬件如下:
奔腾3的处理器;
内存是 2G;
硬盘是50G;
操作系统是Window 10;
在软件方面的话,安装了Eclipse和MySQL数据库开发工具。根据以上的软件与硬件要求,得到这个系统的技术是可行的。
3.2.3 操作可行性
现在随着科技的飞速发展,计算机早已经进入了人们的日常生活中,人们的工作环境也不像以前有那么多的要求,没有必要员工一定要到公司办公,有的工作在家也可以完成。这使得人们的工作效益有了很大的提高。操作的多样性也变高了。因此,管理的计算机化,智能化是社会发展而带来的必然趋势,各种智能的软件层出不穷,不同的软件能完成用户不同的需求,这不仅提高了工作效率还能完成一些客户特定的一些需求。本系统不仅界面简洁明了还采用可视化界面,用户只要用鼠标和键盘就可以完成对相关信息的修改,删除,添加等操作。因为这个系统的操作十分简单,方便上手,对于第一次使用系统的人,只需要很少的时间就可以上手操作。由此可见,本系统在操作上是可行的。
3.2.4 时间可行性
在时间方面,因为项目并不是很大,功能也不算很大,所以可以在规定的时间完成。在确定好目标好,得做出合理的时间规划表,并严格按照时间去进行,才能在规定的时间内完成。
3.3 系统结构设计
系统设计主要是管理员登录后对整个系统相关操作进行处理,可进行系统管理。系统的功能结构图如下图所示。
图3-1 系统结构图
3.4 数据库设计
数据可设计要遵循职责分离原则,即在设计时应该要考虑系统独立性,即每个系统之间互不干预不能混乱数据表和系统关系。
数据库命名也要遵循一定规范,否则容易混淆,数据库字段名要尽量做到与表名类似。
3.4.1 E-R图设计
概念模型是对现实中的问题出现的事物的进行描述,ER图是由实体及其关系构成的图,通过E-R图可以清楚地描述系统涉及到的实体之间的相互关系。
管理员实体包括用户名、密码和角色三个属性。管理员体ER图如下图所示。
图3-2 管理员信息ER图
用户信息ER图如下图所示。
图3-3 用户信息ER图
有机食品信息ER图如下图所示。
图3-4 有机食品信息ER图
订单信息ER图如下图所示。
图3-5 订单信息ER图
3.4.2表设计
本系统采用的是MySQL数据库存储数据,系统中使用到的主要数据表的具体展示部分如下所示。
表3-1 有机食品评论
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
refid | bigint | 关联表id | |||
userid | bigint | 用户id | |||
nickname | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 评论内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表3-2 配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
表3-3 在线客服
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
adminid | bigint | 管理员id | |||
ask | longtext | 4294967295 | 提问 | ||
reply | longtext | 4294967295 | 回复 | ||
isreply | int | 是否回复 |
表3-4 购物车
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
tablename | varchar | 200 | 商品表名 | youjishipin | |
userid | bigint | 用户id | |||
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名称 | ||
picture | varchar | 200 | 图片 | ||
buynumber | int | 购买数量 | |||
price | float | 单价 | |||
discountprice | float | 会员价 | |||
goodtype | varchar | 200 | 商品类型 |
表3-5 有机食品
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shipinbianhao | varchar | 200 | 食品编号 | ||
shipinmingcheng | varchar | 200 | 食品名称 | ||
shipinfenlei | varchar | 200 | 食品分类 | ||
fengmian | varchar | 200 | 封面 | ||
chandi | varchar | 200 | 产地 | ||
xiangqing | longtext | 4294967295 | 详情 | ||
clicktime | datetime | 最近点击时间 | |||
clicknum | int | 点击次数 | 0 | ||
price | float | 价格 | |||
onelimittimes | int | 单限 | -1 | ||
alllimittimes | int | 库存 | -1 |
表3-6 地址
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
address | varchar | 200 | 地址 | ||
name | varchar | 200 | 收货人 | ||
phone | varchar | 200 | 电话 | ||
isdefault | varchar | 200 | 是否默认地址[是/否] |
表3-7 用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yonghuzhanghao | varchar | 200 | 用户账号 | ||
yonghuxingming | varchar | 200 | 用户姓名 | ||
mima | varchar | 200 | 密码 | ||
xingbie | varchar | 200 | 性别 | ||
nianling | int | 年龄 | |||
lianxidianhua | varchar | 200 | 联系电话 | ||
money | float | 余额 | 0 |
表3-8 用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表3-9 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 |
表3-10 收藏表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 用户id | |||
refid | bigint | 收藏id | |||
tablename | varchar | 200 | 表名 | ||
name | varchar | 200 | 收藏名称 | ||
picture | varchar | 200 | 收藏图片 | ||
type | varchar | 200 | 类型(1:收藏,21:赞,22:踩) | 1 | |
inteltype | varchar | 200 | 推荐类型 |
表3-11 食品分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shipinfenlei | varchar | 200 | 食品分类 |
表3-12 订单
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
orderid | varchar | 200 | 订单编号 | ||
tablename | varchar | 200 | 商品表名 | youjishipin | |
userid | bigint | 用户id | |||
goodid | bigint | 商品id | |||
goodname | varchar | 200 | 商品名称 | ||
picture | varchar | 200 | 商品图片 | ||
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 | 收货人 | ||
logistics | longtext | 4294967295 | 物流 | ||
goodtype | varchar | 200 | 商品类型 |
4 系统详细设计
4.1 本章简介
本章将会介绍有机食品线上销售系统的后台功能模块和前台功能模块。后台模块一共有两个用户,分别是管理员和用户。
4.2 后台功能模块—管理员功能模块
4.2.1 管理员登录
管理员输入用户名,密码后进行登录,管理员登录如下图4-1所示:
图4-1 管理员登录界面
4.2.2 管理员功能
管理员登录后,对个人中心、用户管理、食品分类管理、有机食品管理、系统管理、订单管理等进行操作,管理员功能如图4-2所示:
图4-2 管理员功能界面
4.2.3 个人中心
点击个人中心,在个人中心页面可以修改密码、编辑个人信息如下图4-3所示:
图4-3 个人中心页面
4.2.4 用户管理
在用户管理页面,管理员可以查看用用户账号、用户姓名、性别、年龄、联系电话也可以进行查看、修改,删除等操作。如下图4-4所示:
图4-4 用户管理页面
4.2.5 食品分类管理
食品分类管理,管理员可以查看食品分类信息等内容,并进行查看、修改,删除等操作,如下图4-5所示:
图4-5 食品分类管理页面
4.2.6 有机食品信息管理
在有机食品管理页面,管理员可以对食品编号、食品名称、食品分类、封面、产地、价格、单限、库存等内容,并进行查看,修改,查看评论、删除等操作,如下图4-6所示:
图4-6 有机食品管理页面
4.2.7 系统管理
系统管理;管理员在系统管理可以查看在线客服、轮播图管理,还可以在线回复用户,以及上传的图片进行回复、查看、修改操作,以及图片的删除操作,如下图4-7 ,图4-8所示:
图4-7 在线客服页面
图4-8 轮播图管理页面
4.2.8 订单管理
在订单管理页面,管理员可以对订单编号、商品名称、商品图片、购买数量、价格/积分、折扣价格、总价格/总积分、折扣总价格、支付类型、状态、地址、电话、收货人、商品类型等内容,进行查看,发货、删除等操作,如下图4-9所示:
图4-9 订单管理页面
4.3 用户功能模块
4.3.1 个人中心
在个人中心,用户通过输入用户账号、密码、用户姓名、性别、年龄、联系电话、余额等内容来更新个人信息,也可以对我的订单、我的地址、我的收藏进行管理,个人中心如下图4-10图4-11所示:
图4-10 个人中心页面
图4-11 我的地址页面
4.3.2 我的收藏管理
在我的收藏管理页面,用户可以查看收藏名称、收藏图片,收藏类型进行查看、删除等操作,如下图4-12所示:
图4-12 我的收藏管理页面
4.4 前台功能模块
4.4.1 前台首页
用户进入到系统前台后,可以查看首页、有机食品、个人中心、后台管理、购物车、在线客服等内容,用户在未注册、登录的情况下,对这些功能只有查看的功能,前台首页如下图 4-13所示:
图4-13 前台首页页面
4.4.2 用户注册、用户登录
用户如果需要对前台其他功能进行其他的操作,需要进行注册和登录,登录后才有对其他功能操作的权限,用户通过输入用户账号、用户姓名、密码、确认密码、年龄、联系电话进行注册,用户注册、登录如下图 4-14所示:
图4-14 用户注册、用户登录页面
4.4.3 有机食品信息
点击有机食品信息,用户可以查看食品编号、食品名称、食品分类、封面、产地、价格、库存、点击次数等信息,用户可以对食品信息进行添加到购物车,立即购买,收藏和评论等操作,如下图4-15所示:
图4-15 有机食品信息页面
4.4.4 在线客服
点击在线客服,用户可以输入内容进行咨询,管理员可以在后台进行查看并回复,达到用户和管理员交流的效果,如下图4-16所示:
图4-16 在线客服页面
4.4.5 购物车
购物车,在购物车页面可以对购买商品、价格、数量、总价等内容进行点击购买或删除等操作,如图4-17所示。
图4-17 购物车界面图
5 系统测试
系统测试不仅仅是发现系统潜在的BUG或错误,而更为重要的是为用户提供一个良好的体验和安全可使用的产品服务。而通过发现错误或潜在的问题,将有助于提升产品的竞争力,这也是软件测试的其中的重要目的之一。
软件测试的方法有好几种,但目前主要采用的是包括以功能为主要测试方向的黑盒测试以及以逻辑为主要测试方向的白盒测试,这是两种不同的测试方法,针对的测试侧重点不同,本课题根据实际需求情况,选择以功能为主要的黑盒测试方法,同时测试是要遵循一定的规则来执行的,一个测试要执行其执行的依据一般是由测试用例来规定的,而测试用例一般是依据需求或说明书来综合制定的,测试在硬件出厂前是十分重要的一个过程,本课题由于时间和精力的关系,选择以实现的功能作为测试要点来进行测试。具体测试过程如下:
测试用例1及测试过程:
登录:录入登录信息,账号,密码,权限,点击登录按钮,会出现两种情况:登录成功进入用户具有权限的功能界面和提示登录失败。
测试用例2及测试过程:
管理员登录:录入登录信息,管理员账号,密码,权限,点击登录按钮,会出现两种情况:登录成功进入管理员具有权限的功能界面和提示登录失败。
测试结果分析:
经过对上述测试结果分析,本系统能够在不同电脑上使用运行,具备一定安全性,用户信息不易泄露,能够日后再增删功能,能够实现所有功能,产品运行性能良好,能达到毕业设计要求。