🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。
- 代码可以私聊博主获取。🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
- 《Springboot网站项目》400套
- 《ssm网站项目》800套
- 《小程序项目》300套
- 《App项目》500套
- 《python网站项目》600套
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目演示
摘 要
随着我国经济的飞速发展,人们的生活速度明显加快,在餐厅吃饭排队的情况到处可见,近年来由于新兴IT行业的空前发展,它与传统餐饮行业也进行了新旧的结合,很多餐饮商户开始通过网络建设订餐系统,通过专门的网上订餐系统,一方面节省了用户订餐的时间,给用户带来方便,另一方面给商户带来了新的销售模式,同时也使订餐的管理规范化,系统化,给人们的生活带来了很大的便利。
本文重点阐述了网上订餐系统的开发过程,以实际运用为开发背景,基于Spring Boot框架,运用了JSP技术和MYSQL作为系统数据库进行开发,充分保证系统的安全性和稳定性。本系统界面良好,操作简单方便,通过系统概述、系统分析、系统设计、数据库设计、系统测试这几个部分,详细的说明了系统的开发过程,最后并对整个开发过程进行了总结,实现了用户通过网络进行订餐的重要功能。
本基于Spring Boot的网上订餐系统运行效果稳定,操作方便、快捷,界面友好,是一个功能全面、实用性好、安全性高,并具有良好的可扩展性、可维护性的订餐平台。
关键词:网上订餐,JSP技术,数据库,Spring Boot框架
1 绪论
1.1 研究背景
随着互联网技术的快速发展,网络时代的到来,网络信息也将会改变当今社会。各行各业在日常企业经营管理等方面也在慢慢的向规范化和网络化趋势汇合[13]。电子商务必将成为未来商务的主流,因此对于餐饮行业来说,建立一个网上订餐系统是必不可少的一种销售模式;由于现在人们的生活节奏越来越快,就餐时间过于集中,为了实现用户通过计算机平台进行订餐的功能[1],开发了本网上订餐系统。
近几年随着互联网的飞速发展,我国的电子商务也得到了较快的发展,人们的生活方式也随之改变。人们在快节奏的生活中寻找快捷的生活方式,其中电子商务技术为人们提供了更加便利的购物方式[4]。人们网上购物不受时间地点的限制,同时商户实现通过网络平台来进行商品的销售,不仅客户群体,而且还可以为商户进行宣传,能大大的增加营业额。为了满足大量网友网上进行订餐的需求,跟随电子商务发展的步伐,建设一个网上订餐系统为广大用户服务,实现快速订餐功能。
1.2 研究现状
在国外他们的信息技术的发展是我国的许多倍,从1946年诞生在美国的世界上第一台计算机开始,国外的信息技术就一直在飞速地发展,一些计算机应用软件也纷纷出现,软件技术也一直在不断完善和更新。软件行业早已遍布各个地方。
在国内,我国信息技术发展起步比较晚,后期慢慢的不断地进行优化和改革,才让我们的信息技术上升到新的阶段。在现在软件开发的技术经过大量研究和生活实践基本能够达到独立开发系统应用的水平,生活中的各个行业也把软件操作替换成传统的记录模式。软件行业正是现在比较热门的行业。
信息数字化的节奏已经在逐步影响生活中的人们,人们也逐渐感受到信息化说到信息不得不感叹现在人们的各种信息都在迅速流通,信息资源利用充分。信息背后的软件支持也得到广大范围的宣传和使用。软件开发团队愈来愈专业,开发技术愈来愈成熟。有了软件的存在,信息处理效率得到大幅度提升,帮助信息处理者省去了大部分时间。对于订餐方面来讲,传统的实体店进行订餐的方式,已经无法满足用户的需求,因此需要我们利用软件技术开发本网上订餐系统来进行快速实现网络订餐的功能,这个网站提供给用户一个快速订餐的平台,相信这款软件的出现会真正提高用户订餐的效率。
1.3 研究内容
根据基于Spring Boot的网上订餐系统编写的论文主要阐述了基于Spring Boot的网上订餐系统的开发过程中使用的技术,系统开发前进行的需求分析,根据需求文档进行系统设计,最后才是系统功能实现以及测试几个部分,在开始编写论文之前亲自到图书馆借阅JSP书籍,MYSQL数据库书籍等编程书籍,然后针对开发的基于Spring Boot的网上订餐系统,去网上查找了很多别人做好的系统,根据他们的功能设计进行自己的系统的系统功能结构设计,出具需求报告,根据形成的需求报告完成系统各个功能模块设计,最后才是进行程序编码,系统完成后才能进行测试和最后的验收工作,程序开发流程大致如此。
这次编写的论文包含了7个部分的内容,具体内容如下:
第一部分绪论:文章主要从课题背景以及研究现状综合阐述了开发此系统的必要性。
第二部分相关技术:系统开发用到的各种技术都大致做出了简介
第三部分系统分析:从可行性分析和功能需求分析等角度综合研究了此次开发的系统
第四部分系统设计:功能模块设计和数据库设计这两部分内容都有专门的表格和图片表示
第五部分系统实现:进行系统主要功能模块的界面展示
第六部分系统测试:检验程序是否达到预期目标
第七部分总结:进行最后的总结工作
2 系统关键技术
2.1JSP技术
JSP(Java脚本页面)是Sun和许多参与建立的公司所提倡的动态web技术。将Java程序添加到传统的web页面HTML文件(*)。htm,*。Html) [1]。
JSP这种能够独立使用的编程语言可以嵌入在html语言里面运行,正因为JSP参照了许多编程语言的特性,使得JSP在web的脚本技术当中也占有一定的重要位置,对于刚入门编程行业的初学者来讲,jsp这种编程语言不仅容易学习,而且还具备许多高级的特性。在程序的开发过程中,使用jsp也不失为一种正确的选择,像表单数据的收集操作以及字符串信息的处理方面等等,jsp都能很轻松地解决,帮助程序开发者省下许多时间,JSP 新版本的发布,标志着一个全新的JSP时代的到来,它最大的特点就是引入了面向对象的全部机制,并保留了向下的兼容性[4]。综上所述,使用JSP,可以自由的选择操作系统、Web服务器以及合适的数据库管理系统。同时,设计开发时,有两种选择,一种是面向过程,另一种是面向对象,或者也可以两种都使用,可以称为混和方式设计。
JSP的优点:编写一次,始终运行。还有jsp可以延展可以缩短的强大优势,还有就是支持多种开发语言并且兼容性好,适用于很多平台顺利运行[12]。
2.2 JAVA技术
Java是面向对象进行编程的一门语言,基础语法和C语言、C++都差不多,Java删除了C++里面的多指针、继承、自动的强制类型转换等,Java的JVM还可以自动进行垃圾回收,减少了程序员的后顾之忧。最重要的一点是Java语言是支持跨平台的,这使Java语言的使用更加广泛。
JDK(Java Development Kit)是Java语言的软件开发工具包。Java开发中JDK是最重要的核心,JDK里面有JRE,包括client和server端的。环境变量需要配置好。[4]
JRE(JAVA Runtime Environment)是支持Java程序运行的标准环境,JRE里面只有client运行环境,会自动的添加PATH 。
2.3 B/S结构
随着互联网和浏览器的发展,B/S的开发架构逐渐取代了C/S架构,B/S的开发架构是一种浏览器和服务器的模式,它将应用程序的大部分功能都放在服务器端,客户机端只需要安装浏览器(Browser),通过Web Server对服务器端安装的数据库进行数据读取和存储[3]。其B/S架构图如下图所示:
B/S最大的优点就是没有地点限制还不用专门安装软件,笔记本或者电脑能够上网就能访问系统。系统使用B/S进行开发在后期系统维护上面就会很省事,不用什么问题都在服务器上面操作,简单的客户端处理就解决部分问题,开发出来的程序跟用户交互性上面也会增强,还可以实时刷新浏览器进行程序局部的数据信息更新。基于C/S架构的系统只可以被使用在本地电脑上,不能通过计算机网络来进行使用和操作,在使用地理位置等方面都没有B/S架构使用方便。
2.4 MYSQL数据库
MySQL 是关系型数据库管理系统的代表, 因为MySQL是其免费开源的,而且MySQL的功能已经足够用对于学习和中小型企业来讲,所以开发中小型网站都会选择MySQL作为网站的数据库。[15]
MySQL具有开放性,它是一种关系型数据库管理系统,并且它的源代码可以被大众所熟知[3]。由于MySQL是开放源代码的,因此,只要经过授权就可以在自己需求的基础上对其进行修改。MySQL因为其固有的特点而备受关注,它具有很强的适应性,并且十分可靠,查询速度快。MySQL安装起来非常方便,且数据存储量大,不需要事务化处理。Sql语言拥有很多的方法,在项目中编写sql语句时使用起来是非常方便的,不会像其他语言那样需要编写更多的语句。正因为MySQL使用sql语言进行数据库管理,所以它收到了大多数程序员的热爱。
3 系统分析
3.1 可行性分析
通过对本网上订餐系统实行的目的初步调查和分析,提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、操作可行性、经济可行性和时间可行性四方面进行分析。
3.1.1 技术可行性
本基于Spring Boot的网上订餐系统采用JSP和MYSQL数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,对他们的了解度也比较系统,所以技术开发上面还是有一定把握。
3.1.2 操作可行性
操作可行性也就是系统的可用性,系统使用起来必须具备简单的操作导航和界面,不能有太复杂的操作和使用流程。本网上订餐系统的界面简单易操作,用户只要平时有在用过电脑,都能进行访问和操作。系统具有易操作、易管理、交互性好的特点,在操作上是非常简单的。所以系统在操作上具有很高的可行性。
3.1.3 经济可行性
在开发程序时用到的开发软件和数据库,还有界面设计的photoshop软件等在百度上面就可以直接下载,然后根据各种安装视频进行安装,这些资源都是免费的,程序编码阶段使用的源代码在百度上面可以轻松获得,在有网络的环境下就能下载下来,不需要支付任何费用,经济成本很低。
3.1.4 时间可行性
从2020年11月份我们在学校就没有课程了,同学们大部分选择找工作实习了,我也是在其中。一边找工作的同时,一边忙着完成毕业设计工作。对于我本人来讲,目前的情况是白天我要上班参加实习工作,只有晚上我才有时间完成论文编写工作。论文答辩是在2021年5月份左右,将近半年时间来完成毕业设计,时间上还是很充分。
从上面几个部分的可行性分析得出,这次开发的基于Spring Boot的网上订餐系统在开发上面没有什么大问题,值得开发。
3.2系统性能分析
(1)系统的存储性:因为是网上订餐系统,所以就会在数据库要求上比较严格,信息录入的比较多,而且丰富复杂, 这就需要一个强大的数据库来存放更多的数据和保证数据的时时性。
(2)系统的易学性:系统设计的应该简单易学的,设计的各种功能应该简单操作,不需要努力学习培训,缩短用户熟悉系统的进程。
(3)系统的数据要求:数据应该录入准确,需要更新时,数据应该可以及时的修改,数据还应该有独立保存,不能删除数据的时候会连带着把还需要的数据都删除掉。
(4)系统稳定性:开发的网上订餐系统要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。
(5)系统可靠性:系统不可以有病毒类代码,必须有拦截器,验证方法,对里面信息的保护措施,这样才让人用的放心。
3.3系统功能分析
本基于Spring Boot的网上订餐系统主要分管理员和用户两大功能模块,下面将详细介绍管理员和用户分别实现的功能。
3.3.1用户功能分析
用户进入本系统可查看系统信息,包括首页、菜品信息等,用户要想实现下单订餐操作,必须登录系统,未有账号的用户可进行注册,注册登录后主要功能模块包括个人中心、订单信息管理以及订单配送管理,用户用例图如图3-1所示。
图3-1 用户用例图
3.3.2管理员功能分析
管理员登录后可对系统进行全面管理,管理员主要实现的功能模块包括个人中心、会员管理、菜品分类管理、菜品信息管理、订单信息管理、订单配送管理、管理员管理以及系统管理,管理员用例图如图3-3所示。
图3-2 管理员用例图
3.4 系统结构分析
3.4.1逻辑结构
基于Spring Boot的网上订餐系统的特点就是利用Browser/Server(B/S)结构,为用户提供了一个网络订餐的平台,让用户只要上网就可以实现订餐的操作。
本系统的网络应用原理示意图如图3-3所示:
图3-3系统的网络应用原理示意图
3.4.2物理结构
系统实现的物理结构如图3-4所示:
图3-4 系统实现的物理结构图
3.5 系统流程分析
3.5.1注册流程
未有账号的用户可进行注册操作,用户注册流程图如图3-5所示。
图3-5注册信息流程图
3.5.2登录流程
登录模块主要满足了管理员和用户的权限登录,用户登录流程图如图3-6所示。
图3-6 登录流程图
4 系统设计
4.1系统结构设计
系统的设计和划分是系统的核心研究问题,以确定整体结构和功能模块。该系统的结构化设计的思想,是自顶向下的方式将系统分成若干个子系统,以及反过来的子系统分成模块,其被划分成子模块,层划分各计算机可执行模块可迄今用作一个单独的程序。
本基于Spring Boot的网上订餐系统主要管理员模块以及用户模块两大部分,系统结构图如图4-1所示。
图4-1系统功能模块图
4.2系统顺序图设计
4.2.1登录模块顺序图
登录模块主要满足了管理员和用户的权限登录,登录模块顺序图如图4-2所示。
图4-2登录顺序图
4.2.2添加信息模块顺序图
管理员登录后可进行添加信息操作,添加信息模块顺序图如图4-3所示。
图4-3 添加信息顺序图
4.3 数据库设计
4.3.1 数据库E-R图设计
E-R图是一种描述显示数据类型间的关系的数据描述方法,E-R图可以完整地映射出现实模型的关系。E-R图中的三个最为重要的元素就是实体、属性、关系。E-R图即由这三点组成。
实体:E-R图中数据的实体,用矩形表示上面为实体名,下面为实体属性,实体包含主外键等关系。
属性:E-R图中的属性,是指实体的属性,实体由多条属性所构成,属性拥有自己的数据类型,数据大小。属性的优劣决定了E-R图中实体的健全性、完整性。
关系:E-R图中的关系是指实体之间的关系,用菱形来表示实体间的关系,这些菱形关系的联系上有着一对多或多对多的数据联系,这些构成了E-R图的关系,E-R图的关系紧密连接了实体,使实体间的关联性更加的显著、易懂。本基于Spring Boot的网上订餐系统的E-R图如下所示:
(1)管理员信息实体属性E-R图如图4-4所示:
图4-4管理员信息实体E-R图
(2)菜品分类信息实体属性E-R图如图4-5所示:
图4-5 菜品分类信息实体属性E-R图
(3)菜品信息实体属性E-R图如图4-6所示:
图4-6 菜品信息实体属性E-R图
(4)订单信息实体属性E-R图如图4-7所示:
图4-7 订单信息实体属性E-R图
(5)会员信息实体属性E-R图如图4-8所示:
图4-8 会员信息实体属性E-R图
4.3.2 数据库表设计
本基于Spring Boot的网上订餐系统采用了MYSQL数据库管理系统,主要数据库表详细信息如下:
表4-1 users管理员信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 |
`id` | bigint(20) | NOT NULL | 编号 |
username | varchar(100) | NULL | 用户名 |
password | varchar(100) | NULL | 密码 |
role | varchar(100) | NULL | 角色 |
`addtime | timestamp | NULL | 新增时间 |
表4-2 caipinfenlei菜品分类信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 | |
`id` | bigint(20) | NOT NULL | 编号 | |
addtime | timestamp | NULL | 创建时间 | |
`caipinfenlei | varchar(200) | NULL | 菜品分类 |
表4-3 caipinxinxi菜品信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 | |
`id` | bigint(20) | NOT NULL | 编号 | |
addtime | timestamp | NULL | 创建时间 | |
caipinmingcheng | varchar(200) | NULL | 菜品名称 | |
tupian` | varchar(200) | NULL | 图片 | |
caipinfenlei | varchar(200) | NULL | 菜品分类 | |
tuijianzhishu | varchar(200) | NULL | 推荐指数 | |
jiage | varchar(200) | NULL | 价格 | |
kouwei | varchar(200) | NULL | 口味 | |
shicai | varchar(200) | NULL | 食材 | |
caipinxiangqing | longtext | NULL | 菜品详情 | |
clicktime | datetime | NULL | 最近点击时间 | |
`clicknum | int(11) | NULL | 点击次数 |
表4-4 dingdanxinxi订单信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 | |
`id` | bigint(20) | NOT NULL | 编号 | |
addtime | timestamp | NULL | 创建时间 | |
`dingdanbianhao | varchar(200) | NULL | 订单编号 | |
caipinmingcheng | varchar(200) | NULL | 菜品名称 | |
caipinfenlei | varchar(200) | NULL | 菜品分类 | |
`jiage | varchar(200) | NULL | 价格 | |
`shuliang | varchar(200) | NULL | 数量 | |
zongjine | float | NULL | 总金额 | |
xiadanshijian` | datetime | NULL | 下单时间 | |
beizhu | varchar(200) | NULL | 备注 | |
`huiyuanzhanghao | varchar(200) | NULL | 会员账号 | |
huiyuanxingming | varchar(200) | NULL | 会员姓名 | |
shoujihaoma | varchar(200) | NULL | 手机号码 | |
dizhi | varchar(200) | NULL | 地址 | |
huiyuanzhekou | varchar(200) | NULL | 会员折扣 | |
ispay | varchar(200) | NULL | 是否支付 |
表4-5 huiyuan会员信息表
字段名 | 数据类型 | 是否允许空 | 字段含义 | |
`id` | bigint(20) | NOT NULL | 编号 | |
addtime | timestamp | NULL | 创建时间 | |
`huiyuanzhanghao | varchar(200) | NULL | 会员账号 | |
mima | varchar(200) | NULL | 密码 | |
huiyuanxingming | varchar(200) | NULL | 会员姓名 | |
touxiang | varchar(200) | NULL | 头像 | |
xingbie | varchar(200) | NULL | 性别 | |
nianling | varchar(200) | NULL | 年龄 | |
shoujihaoma | varchar(200) | NULL | 手机号码 | |
dizhi | varchar(200) | NULL | 地址 | |
huiyuandengji | varchar(200) | NULL | 会员等级 | |
huiyuanzhekou | varchar(200) | NULL | 会员折扣 |
5 系统的实现
5.1 用户功能模块的实现
用户进入本系统可查看系统信息,包括网站首页、菜品信息等,系统主界面展示如图5-3所示。
图5-1系统登录界面
5.1.1用户注册界面
未有账号的用户可进入注册界面进行注册操作,用户注册界面展示如图5-2所示。
图5-2用户注册界面
5.1.2用户登录界面
用户在登录界面可输入用户名和密码,点击登录按钮进行登录系统,用户登录界面展示如图5-3所示。
图5-3 用户登录界面
5.1.3菜品详情界面
用户可选择菜品查看菜品详情信息,登录后可进行下单操作,菜品详情界面展示如图5-4所示。
图 5-4 菜品详情界面
5.1.4下单订餐界面
用户登录后可选择菜品进行下单订餐操作,下单订餐界面展示如图5-5所示。
图5-5 下单订餐界面
5.1.5订单信息界面
用户对个人订单可进行查看、支付等,订单信息界面展示如图5-6所示。
图5-6 订单信息界面
5.1.6订单配送界面
用户能够查看个人订单配送信息,订单配送界面展示如图5-7所示。
图5-7 订单配送界面
5.2 管理员功能模块的实现
5.2.1管理员登录界面
管理员要想进入后台对系统进行管理操作,必须登录系统后台,管理员登录界面展示如图5-8所示。
图5-8 管理员登录界面
5.2.2会员管理界面
管理员可查看、添加、修改和删除会员信息,会员管理界面展示如图5-9所示。
图5-9 会员管理界面
5.2.3菜品信息管理界面
管理员可添加、修改和删除菜品信息,菜品信息管理界面展示如图5-10所示,添加菜品信息界面展示如图5-11所示。
图5-10菜品信息管理界面
图5-11添加菜品信息界面
5.2.4菜品分类管理界面
管理员能够增删改查菜品分类信息,菜品分类管理界面展示如图5-12所示。
图5-12 菜品分类管理界面
5.2.5订单信息管理界面
管理员可进入订单信息管理界面查看所有订单信息,并可对其进行安排配送、修改和删除操作,订单信息管理界面展示如图5-13所示。
图5-13订单信息管理界面
5.2.6订单配送管理界面
管理员可增删改查订单配送信息,订单配送管理界面展示如图5-14所示。
6 系统测试
6.1测试定义
系统测试主要是判断系统是否可以正常运行,功能模块是否可以实现操作。程序代码中是否有错误出现。测试程序是开发过程中的一个主要问题。就算系统完成的再好,再进行程序测试时也会也会发现一个重来没有被发现的错误信息。
测试不仅是系统开发的开始,而且应该贯穿整个系统的整个生命周期。评估系统质量的方法不局限于系统编码和过程,应该与软件设计工作和历史需求分析密切相关。系统错误,不一定是代码错误,可能是阶段的设计摘要和设计细节存在问题,问题也可能出现在需求分析阶段。从实际情况来看,最初的问题很可能是一个小错误,根据按钮的原理,按钮后的按钮位错将是所有位错。该系统的原因也同样适用,随着后续的开发工作,误差将越来越严重。为了避免问题在后续编码,测试和设计,避免扩大国家的问题。在测试系统中,开发人员应该站在客户的角度来处理测试工作,而现在主要的测试方法是黑盒测试。测试的目的可以概括为以下几点:首先,用户界面和客户需求是一致的,设置界面和设计风格统一;第二,创新设计接口规范设计标准,具有独特的审美特征;最后,人类传统的接口以满足审美需求,不能盲目地追求一种独特的,合理的规划布局,符合审美标准。
6.2测试方案
对测试计划的把握是测试方案的重中之重。所有的技术难点应该都被包含在这个测试计划之中。而且我们要保证能与目标形成一致性,以至于能够测试出一些主要存在的错误和一些错误的漏洞。可以完美解决这些问题就只有白盒测试或者黑盒测试。
构造测试是白盒测试的另一个名字,了解与分析程序的结构以及性能功用的,从而我们可以得到最终想要的结果并且观察出是不是每一条程序都能得到。
性能测试是黑盒测试别称,程序本身的运作通过程序的进程来观察,主要是看一下程序是不是能够像我们预期的目标那样发展,看一看我们的程序最终能不能完整的得到我们最后想要的功能和储存想得到的数据,到最后看一下我们的这个程序完整性能不能达到要求。
单元测试就是模块测试,顾名思义就是测试每个模块所承担的功能是否能够实现,这个测试就是为了找出代码在实际的设计运转中某一些小的程序所出现的偏差,很好地改正这些错误,就说明我们模块测试进行很成功过。
集成测试就是对系统的测试以及对他子系统的一些性能测试,他检查的事系统的包装程序信息。找出其中的问题。他的优势主要有以下这几点:
软件耗费较少。
可以提前发现端口的错误。
更好的地位系统中错误的位置。
从底部往上面进行的方案针对于偏下层的结构,而中间的结构就采用折中的方法。
终于到了结尾性的工作了。就是为了给用户看一下我们的系统功能是否达到了预期的效果。我采用了性能测试也就是黑盒测试对系统进行测试。
其结果是分别是:
有一定的差异在用户的需求。
再者就是结果与之差不了多少。
到了最后了,我们发现的问题都是与用户的需求存在一定的关联。
6.3测试方式
总体程序测试的话,通常有两种测试方式,白盒的测试和黑盒的测试。
白盒的测试方式:总的来说就是以程序内部逻辑结构为依据而用来进行设计测试用例的方式
黑盒的测试方式:总的说来黑盒的测试会有这么几个方法方式:同等价值的一个分类方式、对于系统的一个边界数值的一个分析方式、对与错的一个猜想方式、还有最后一种就是图什么样的图,称之为因果图的方式。
整个的系统测试包括了最为重点的两种方式,从而“保障了系统测试的用例完全性和效果性”的一个原则。进行测试总体而言就是要检查功能齐全、是否能够接收信息或输送信息、数据的结构、性能需求是否到位、是否能够正确的初始化和终止。
6.4测试结论
经过对上述的测试结果分析,本基于Spring Boot的网上订餐系统满足用户的要求和需求。所有基本功能齐全,操作简单,系统运行性能良好,是一个值得推广的大众化的订餐平台。
测试的时候要考虑到每个细节功能,除了要输入正确的数据进行测试,还要进行错误数据,这就需要我们有足够的耐心和细心,因为设计的这个网站是我个人设计的,所以难免会有很多问题和不足,希望在以后的使用中,老师和同学们多提意见。
总体说来,软件通过测试。
7 总结
在这次毕业设计中,我发现在生活和工作中,网络和数据库应用隐藏着巨大的潜力。在学校的四年中,我全力学习计算机网络专业知识和本文使用,我相信所有困难终都会被解决的。
毕业设计是最能体现出我们所学知识的应用情况,是对我们大学期间所学知识的应用巩固和提高的时刻。设计基于Spring Boot的网上订餐系统的过程不仅仅是对我学计算机知识的一次考验,更是对我运用所学知识解决处理现实问题能力的培养和锻炼。通过这次的毕业设计让我对软件的开发有了很深的认识了解,我的编程能力也得到了很大的提升。整个系统设计下来花费了好几个月,从确定做这个题目来,就一直在图书馆里翻阅各种资料,并参考了很多别人做的系统,有了一个整体的构思后,开始付之于行动,把我所学的JSP和MYSQL又都重新学习了一遍,仔细用于实践,通过这次的毕业设计,让我对所学知识进行了一个整体联合,有了一个很大的提高,从开始的一筹莫展,不知从何下手,到进行到中间总是出错,编不下去,又到最后的渐入佳境,最终,终于完成了我的设计。从定题到研究背景到可行性分析,到功能的各个设计,到详细实现,总算设计出了一个达到预期目的系统。
本系统基于Spring Boot框架,利用了我相对熟悉的JAVA编程语言和MYSQL数据库进行设计,中间出现了很多问题,查阅了大量的资料,最后慢慢实现了整个系统。做了整个系统下来,我感觉我的沟通能力和自学能力,解决问题的能力都有了很大的提高,这也将为我以后出社会找工作提供了宝贵的财富。使我明白,只要肯努力,肯学习,再大的困难也不是问题,世上无难受,只要肯登攀。我以后会不断的继续努力的。我知道设计的这个系统肯定还有很多没想到的地方,因为时间比较短,学习的有限,又没有实际经历实践过,所以设计出的这个系统的不足地方也比较多,希望老师们多多指导,让系统越来越完整,我会继续努力的。
参考文献
[1]基于JSP的网上订餐系统的设计研究[J]. 李卫军,陈旭.电脑知识与技术.2014(21)
[2]浅谈网站开发技术的发展与前景[J]. 李鸿飞.中国新通信.2012(15)
[3]基于B/S模式的餐饮管理系统设计与开发[J]. 杜爱红,韩利凯.科技广场.2015(02)
[4]基于JSP的网上订餐系统研究[J].杜丽英.才智.2014(36)
[5]基于Web的网上订餐点菜系统[J].刘辉,杨克勤,刘秀芳.商场现代化.2007(16)
[6]基于JAVA的订餐管理系统的设计与实现[D]. 单慧.大连理工大学2015
[7]在线订餐系统的设计与实现[D]. 孟慧.电子科技大学 2014
[8]网上订餐系统研究与开发[J]. 陈赵云,张志山,黄日胜.电脑学习.2010(03)
[9]基于Web的在线订餐系统的架构设计与实现[J]. 徐洪军.计算机应用与软件.2009(05)
[10]基于WEB的网上订餐系统[J]. 李西陆.商场现代化.2008(21)
[11]基于Web的网上订餐点菜系统[J]. 刘辉,杨克勤,刘秀芳.商场现代化.2007(16)
[12]张红梅,王磊.在JSP中访问数据库的方法[J].实验科学与技术,2006(08).
[13]靳其兵,李晓波.基于JSP的数据库连接技术的研究[J].计算机仿真 2007(04) .
[14]孙东卫,张冀红,李声利. 数据库访问技术研究[J].现代电子技术.2002,18(5).20-34.
[15]苟凌怡,魏生民. MYSQL中索引的有效选取[J].计算机工程与应用,1999,35(6):70-71.
[16]张树亮, 李超.JSP+MYSQL网络应用系统开发案例精解[M].北京:清华大学出版社,2006.
[17]G.E.Hobona, S.J.Abele, Philip James[J].University of Newcastle upon Tyne, 2006.
[18]张宁,吴捷,杨卓,张涛. 基于MYSQL的脑电数据库的构建[J].广西科学院学报,2006 22(4):275-278.
[19]王静.国外企业信息化建设的趋势、实践及启示[J].农村经济与科技.2011,22(07):170-171.
[20]宋连友.企业信息化建设中的几个关键问题[J].中国商贸.2011,06.85-86.
致 谢
设计基于Spring Boot的网上订餐系统的过程是对我学习能力与学业水平的一次考验。通过这次的毕业设计使我对程序的编写有了深刻的认识,我的程序编辑能力也得到了很大的提升。虽然在系统开发过程中有很多我无法独立解决的难题,但是在老师的悉心指导,以及经过自己持之以恒的编写与调试程序下,程序的开发最后得到了完满的结果。
我的毕业论文(设计)撰写工作自始至终都是在指导老师全面、具体的指导下进行的。在这里我要对指导老师表示由衷的感谢,从系统的选题,到功能体系的设计,指导老师给出了许多建设性的意见,当设计碰到问题时,他总是不辞辛劳研究模块,代码,提出有效的解决建议。指导老师给予了我悉心的关怀与指导,尤其是他那种一丝不苟、严谨求实、兢兢业业的教学和工作态度将使我终身受益。设计期间,虽然辛苦,但很幸福。经过几个月以来的学习与设计我学到了很多知识,它让我更加懂得了一份耕耘,一份收获的深刻道理,更学会了与身边同学进行团队合作,共同进步。通过此次毕业设计,也让我明白了:首先,在工作学习过程中,对所要做的事情要先收集各种相关资料,对其有大致的了解;其次,考虑问题不能只考虑单方面,要全面分析、认真思考;最后,做事情要合理安排。
感谢我的指导教师对我的关心、指导和教诲! 感谢我的父母把我培养这么大,供我上大学,让我有机会学习这么多。感谢陪伴我四年一起成长学习的同学们,同学们在学习和生活上对我的帮助和照顾!最后,最主要的是要感谢各位老师对我的教育,在设计途中,多次的崩溃,多次的手足无措,很多次的想要放弃,都是老师对我不断的鼓励,我才坚持下来,最终完成了毕业设计。感谢大家的支持,使我对今后将要面对的社会,工作,生活,信心百倍。再次表示感谢,谢谢!
核心代码展示
java">/*** 公告通知* 后端接口* @author * @email * @date 2021-03-09 11:33:59*/
@RestController
@RequestMapping("/news")
public class NewsController {@Autowiredprivate NewsService newsService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( NewsEntity news){EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); return R.ok().put("data", newsService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(NewsEntity news){EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();ew.allEq(MPUtil.allEQMapPre( news, "news")); NewsView newsView = newsService.selectView(ew);return R.ok("查询公告通知成功").put("data", newsView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){NewsEntity news = newsService.selectById(id);return R.ok().put("data", news);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody NewsEntity news, HttpServletRequest request){news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(news);newsService.insert(news);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody NewsEntity news, HttpServletRequest request){//ValidatorUtils.validateEntity(news);newsService.updateById(news);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){newsService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = newsService.selectCount(wrapper);return R.ok().put("count", count);}}