🙊作者简介:多年一线开发工作经验,分享技术代码帮助学生学习,独立完成自己的网站项目。
- 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹
- 赠送计算机毕业设计600个选题excel文件,帮助大学选题。
- 赠送开题报告模板,帮助书写开题报告。
作者完整代码目录供你选择:
⬇️文章末尾可以获取联系方式,需要源码或者演示视频可以联系⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡
项目展示
摘 要
本课题是根据用户的需要以及网络的优势建立的一个基于Vue的汽车服务商城系统,来更好的为用户提供服务。
本基于Vue的汽车服务商城系统应用Java技术,MYSQL数据库存储数据,基于SSM+Vue框架开发。在网站的整个开发过程中,首先对系统进行了需求分析,设计出系统的主要功能模块,其次对网站进行总体规划和详细设计,最后对基于Vue的汽车服务商城系统进行了系统测试,包括测试概述,测试方法,测试方案等,并对测试结果进行了分析和总结,进而得出系统的不足及需要改进的地方,为以后的系统维护和扩展提供了方便。
本系统布局合理、色彩搭配和谐、框架结构设计清晰,具有操作简单,界面清晰,管理方便,功能完善等优势,有很高的使用价值。
关键词:Vue框架;汽车服务商城;MYSQL数据库;Java技术
第1章 绪论
1.1 课题背景
随着中国的科技的不断进步,计算机发展也慢慢的越来越成熟,人们对计算机也是越来越更加的依赖,科研、教育慢慢用于计算机进行管理。从第一台计算机的产生,到现在计算机已经发展到我们无法想象。给我们的生活改变很多很多,给我们提供了把很多的方便,计算机已经融入到我们的生活中,和我们的生活息息相关。
社会经济的快速发展,汽车业发展迅速,汽车4S店的日益竞争激烈,汽车4S店要想生存发展,就必须在各个方面加强管理,客户是汽车4S店赖以生存的基本,因此,为了更好的为客户服务,提高服务质量,结合信息技术的发展,开发了本汽车服务商城系统。实现汽车服务商城系统与传统的汽车服务模式相比,有着无法比拟的优点,其具有方便、及时、管理快捷、储存空间大、成本低、查找方便等特点,能够提高效率,更好的为广大用户服务。
1.2 设计原则
在开始开发项目之前,必须要先考虑项目的实用性、科学性,以及该项目是否能够真正让用户受益并尽可能的发挥项目的作用。因此,在开发前,通过以下几条原则对项目进行判断:
(1)可行性原则。项目需要保证经济可行性和技术可行性,这包括了项目在浏览端、服务端等方面上的经济和技术上是可以达成的。
(2)适应性原则。项目要保证可维护性和可扩展性,这是每个非短期项目都需要考虑的,并且不论是维护还是扩展,都必须要建立在适应用户的正常需求的基础上。
(3)安全性及保密性原则。要充分保证用户信息的安全性和保密性,不能因为开发上的疏忽,导致用户的信息泄露。
(4)系统工程原则。为了确保项目的整体性,在项目调查、项目分析、项目设计、项目开发的过程中,都需遵从项目工程的方法和步骤逐步进行。
(5)统一规划、分期实施、逐步完善原则。项目开发的过程中,要按照规划、分期实施,特别是要注意在项目开发过程中要有条理,从点到面,一步步完善,不要贪图进度,要循环渐进的对项目进行开发。
1.3 论文组织结构
第一部分绪论:文章主要从课题背景、设计原则综合阐述了开发此系统的必要性。
第二部分相关技术:系统开发用到的各种技术都大致做出了简介
第三部分系统分析:从可行性分析和功能需求分析等角度综合研究了此次开发的系统
第四部分系统设计:功能模块设计和数据库设计这两部分内容都有专门的表格和图片表示
第五部分系统实现:进行系统主要功能模块的界面展示
第六部分系统测试:检验程序是否达到预期目标
第七部分总结:进行最后的总结工作
第2章 关键技术简介
2.1 Java技术
Java是一种非常常用的编程语言,在全球编程语言排行版上总是前三。在方兴未艾的计算机技术发展历程中,Java的身影无处不在,并且拥有旺盛的生命力。Java的跨平台能力十分强大,只需一次编译,任何地方都可以运行。除此之外,它还拥有简单的语法和实用的类库,让编程人员可以尽可能将精力集中在问题的求解上,并且许多开源项目和科研成果都是采用它实现的。
在1995年这一年的5月份,著名的Sun Microsystems公司在程序开发设计上面郑重推出一种面向对象开发的程序设计语言——Java,最开始的时候Java是由詹姆斯.高斯林这位伟大的JAVA之父来进行主导,但是在后来由于各种原因,让甲骨文公司这个针对商业程序创建了oracle大型数据库的公司收购了Java[16]。Java的平台总共算下来有3个,分别为javaME和javaSE以及javaEE这3个java平台。下面将对其进行分别介绍。
(1)在电脑桌面程序的开发上面需要选择JavaME,这个用得也比较多。
(2)企业也会根据工作以及业务需要开发各种软件,那么就会选用JavcEE这个支持企业版软件的开发的Java平台,JavcEE主攻运用在企业领域上面的web应用,JavcEE也在javaSE的基础上获得了比如jsp技术 ,Servlet技术等程序开发技术的支持。
(3)现在生活中手机的普及化,也使得手机端这样的移动设备的软件的兴起,JavaME这个迷你版java平台就能运用于移动端的软件开发操作。
2.2 Vue框架
Vue是当今前端的三大框架之一,主要技术领域运用到的是单页SPA的应用之中。这样很好的提供了用户的浏览网页的交互体验。减少了浏览器的负载。提高浏览器的高效的浏览的速度。
Vue 是一套用于构建用户界面的渐进式框架。Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。Vue可以在任意其他类型的项目中使用,使用成本较低,更加灵活,主张较弱,在Vue的项目中也可以轻松融汇其他的技术来开发,而且因为Vue的生态系统特别庞大,可以找到基本所有类型的工具在vue项目中使用。其特点:易用(使用成本低),灵活(生态系统完善,适用于任何规模的项目),高效(体积小,优化好,性能好)。
VUE的出现,加快了前后端分离的进程,提高了程序员的工作效率,也减少了工作时间。Vue.js是一套用于构建用户界面的,可以自底向上逐层应用的渐进式前端框架。它相比于其他主流的JavaScript框架例如AngularJS或React都具有运行效率高、语法简洁、自身占用空间小、上手容易等特点。它的核心只关注视图层,是一个允许采用简洁的模板语法来声明式地将数据渲染进DOM的系统,并且所有的这些都是响应式的。
2.3 B/S结构
此次设计的网络结构模式B/S结构(Browser/Server)。B/S架构也称为B/S模式,是一种服务器以及浏览器架构模式。B/S的工作模式都是先由浏览器请求,服务器再响应。B/S体系结构解决了异构系统中的连接难题,大大改善了系统的开放性,让系统的扩展和维护更加简单;同时,B/S体系结构操作也比较容易,界面全都为浏览器模式,容易分发数据的捕获程序。只要安装通用的浏览器(如WWW浏览器)就能通过Web服务器与数据库进行数据交互。此结构的好处之一在于由于它使用的统一的浏览器,使其可以在不同的地方且不需要用专门的软件进行操作,实现了不论你使用怎样的接入网的方式都可以对公共的数据进行调用和浏览。
相对于C/S模式,B/S模式是对C/S模式应用的扩展,B/S模式不用对不同的计算机安装不同应用程序,还有安全性的要求及对模式上手难度都比前者更好。B/S模式可以让客户机的压力大大减轻,工作的负荷被合理的分配了。
B/S三层框架结构图如图2-1所示:
图2-1 B/S三层框架结构图
2.4 MYSQL数据库
MySQL 是关系型数据库管理系统的代表, 因为MySQL是其免费开源的,而且MySQL的功能已经足够用对于学习和中小型企业来讲,所以开发中小型网站都会选择MySQL作为网站的数据库。[13]
MySQL具有开放性,它是一种关系型数据库管理系统,并且它的源代码可以被大众所熟知[3]。由于MySQL是开放源代码的,因此,只要经过授权就可以在自己需求的基础上对其进行修改。MySQL因为其固有的特点而备受关注,它具有很强的适应性,并且十分可靠,查询速度快。MySQL安装起来非常方便,且数据存储量大,不需要事务化处理。Sql语言拥有很多的方法,在项目中编写sql语句时使用起来是非常方便的,不会像其他语言那样需要编写更多的语句。正因为MySQL使用sql语言进行数据库管理,所以它收到了大多数程序员的热爱。
第3章 系统分析
3.1 可行性分析
在系统开发之初要进行系统可行分析,这样做的目的就是使用最小成本解决最大问题,一旦程序开发满足用户需要,带来的好处也是很多的。下面我们将从技术上、操作上、经济上等方面来考虑这个系统到底值不值得开发。
3.1.1 技术可行性
本基于Vue的汽车服务商城系统采用Java和MYSQL数据库进行开发设计,作为计算机专业学生,在学校期间就接触到许多关于编程方面的知识,当然也包括各种编程软件,对他们的了解度也比较系统,所以技术开发上面还是有一定把握。
3.1.2 经济可行性
由于自己本身就是学生,还没有正式参加工作,金钱上面一直都处于缺乏状态。所以在开发程序过程中,我是不会花太多经济成本在上面的。针对开发软件和数据库,还有界面设计的photoshop软件等在百度上面就可以直接下载,然后根据各种安装视频进行安装,这些资源都是免费的,程序编码阶段使用的源代码在百度上面可以轻松获得,在有网络的环境下就能下载下来,不需要支付任何费用,经济成本很低。
3.1.3 操作可行性
本人自己就是学生,程序开发经验不足,在界面设计上面不会设计太复杂,要讲究简单好看,操作上要方便,不能让用户觉得不流畅。用户一旦进入操作界面,界面上就会有相应提示,跟着操作提示就可以找到对应的功能操作模块,对于用户来说免培训就能使用。本基于Vue的汽车服务商城系统本身具有操作可行性,其界面设计清晰、功能权限分配合理,操作简单,不同用户登录后可对进行相应功能模块的操作,具有极高的操作可行性。
3.1.4 时间可行性
从时间上看,在三个月的时间里学习相关知识,开发本基于Vue的汽车服务商城系统,时间上是有点紧,但是不是不可能实现,在做毕业设计的这几个月里,我通过努力使得功能应该基本可以实现。
综上所述,我们进行了四个方面的可行性研究,可以看出,该基于Vue的汽车服务商城系统的开发是没有问题的。
3.2 系统功能分析
本基于Vue的汽车服务商城系统主要满足两种用户的需求,这两种用户分别为管理员和用户,下面将对这两种用户分别实现的功能进行详细的阐述。
(1)用户:用户在系统前台可查看系统信息,包括首页、汽车、汽车美容、配件、维修保养以及公告等,注册登录后主要功能模块包括个人中心、汽车分类管理、汽车管理、汽车美容管理、配件管理、维修保养管理、购买记录管理以及预约记录管理,用户用例图如图3-1所示。
(2)管理员:管理员登录后可对系统进行全面的管理,主要功能模块包括个人中心、用户管理、汽车分类管理、汽车管理、汽车美容管理、配件管理、售后服务管理、维修保养管理以及购买记录管理。管理员用例图如图3-2所示。
图3-2 管理员用例图图
3.3 系统性能分
(1)系统的存储性:因为是汽车服务商城系统,所以就会在数据库要求上比较严格,信息录入的比较多,而且丰富复杂, 这就需要一个强大的数据库来存放更多的数据和保证数据的时时性。
(2)系统的易学性:系统设计的应该简单易学的,设计的各种功能应该简单操作,不需要努力学习培训,缩短用户熟悉系统的进程。
(3)系统的数据要求:数据应该录入准确,需要更新时,数据应该可以及时的修改,数据还应该有独立保存,不能删除数据的时候会连带着把还需要的数据都删除掉。
(4)系统稳定性:开发的基于Vue的汽车服务商城系统要求运行稳定,运行过程中无界面不清楚、字体模糊等现象。
(5)系统可靠性:系统不可以有病毒类代码,必须有拦截器,验证方法,对里面信息的保护措施,这样才让人用的放心。
3.4 系统流程分析
3.4.1注册流程
未有账号的用户可进行注册操作,在注册时系统会判断用户名是否已存在,已存在的话,提示返回重新填写用户名,用户名不存在,填写其他注册信息,系统判断注册信息是否正确,正确则在数据库中添加用户信息,注册成功。用户注册流程图如图3-3所示
登录模块主要满足了用户以及管理员的权限登录,用户登录流程图如图3-4所示
图3-4登录流程图
第4章 系统设计
4.1 系统结构设计
系统结构设计是一个将一个庞大的任务细分为多个小的任务的过程,这些小的任务分段完成后,组合在一起形成一个完整的任务。在整个设计过程,以确定可能的具体方案达成每一个小的最终目标,对于每一个小的目标而言,我们必须先了解一些相关的需求分析的信息。然后对系统进行初步的设计,并对其逐渐进行优化,设计出一个具体可实现的系统结构。
本基于Vue的汽车服务商城系统主要包括用户模块和管理员模块,根据第三章中系统功能需求分析,可画出本基于Vue的汽车服务商城系统的结构图如图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图,则整体数据库就缺少明确的定位和条理性,使得处理数据的效率大大降低,在需要更新或者查找数据时报错的可能性大大提升,对与后期运行调试系统会造成不必要的麻烦。本基于Vue的汽车服务商城系统的E-R图如下图所示:
4.3.2数据库表设计
本基于Vue的汽车服务商城系统采用了MYSQL数据库进行系统数据的储存,主要的数据库表的具体设置如下:
表4-1 peijian配件信息表
列名 | 说明 | 类型 ( 长度 ) | 备注 |
id | 编号 | bigint(20) | 不允许空,主键 |
addtime | 创建时间 | timestamp | 允许空 |
shangpinbianhao | 商品编号 | varchar(200) | 允许空 |
peijianmingcheng | 配件名称 | varchar(200) | 允许空 |
peijianfenlei | 配件分类 | varchar(200) | 允许空 |
pailiang | 排量 | varchar(200) | 允许空 |
gongxiaoshangmingcheng | 供应商名称 | varchar(200) | 允许空 |
dizhi | 地址 | varchar(200) | 允许空 |
fuzeren | 负责人 | varchar(200) | 允许空 |
lianxifangshi | 联系方式 | varchar(200) | 允许空 |
shuliang | 数量 | varchar(200) | 允许空 |
peijiantupian | 配件图片 | varchar(200) | 允许空 |
peijianjiage | 配件价格 | int(11) | 允许空 |
peijianjieshao | 配件介绍 | longtext | 允许空 |
表4-2 qiche汽车信息表
列名 | 说明 | 类型 ( 长度 ) | 备注 |
id | 编号 | bigint(20) | 不允许空,主键 |
addtime | 创建时间 | timestamp | 允许空 |
qichemingcheng | 汽车名称 | varchar(200) | 允许空 |
qichefenlei | 汽车分类 | varchar(200) | 允许空 |
qichepinpai | 汽车品牌 | varchar(200) | 允许空 |
qicheyanse | 汽车颜色 | varchar(200) | 允许空 |
qichetupian | 汽车图片 | varchar(200) | 允许空 |
tianchuang | 天窗 | varchar(200) | 允许空 |
huandangfangshi | 换挡方式 | varchar(200) | 允许空 |
zuowei | 座位 | varchar(200) | 允许空 |
`qichepailiang | 汽车排量 | varchar(200) | 允许空 |
shangshinianfen | 上市年份 | varchar(200) | 允许空 |
shuliang | 数量 | int(11) | 允许空 |
`qichexiangqing` | 汽车详情 | longtext | 允许空 |
`clicktime | 最近点击时间 | datetime | 允许空 |
clicknum | 点击次数' | int(11) | 允许空 |
表4-3 qichemeirong汽车美容信息表
列名 | 说明 | 类型 ( 长度 ) | 备注 |
id | 编号 | bigint(20) | 不允许空,主键 |
addtime | 创建时间 | timestamp | 允许空 |
xiangmumingcheng | 项目名称 | varchar(200) | 允许空 |
xiangmuleixing | 项目类型 | varchar(200) | 允许空 |
xiangmutupian | 项目图片 | varchar(200) | 允许空 |
xiangmujiage | 项目价格 | int(11) | 允许空 |
`keyueshijian | 可约时间 | varchar(200) | 允许空 |
yuyueshijian | 预约时间 | datetime | 允许空 |
yuyuebeizhu | 预约备注' | varchar(200) | 允许空 |
sfsh | 是否审核 | varchar(200) | 允许空 |
shhf | 审核回复' | longtext | 允许空 |
表4-4 users管理员信息表
列名 | 说明 | 类型 ( 长度 ) | 备注 |
id | 编号 | bigint(20) | 不允许空,主键 |
username | 用户名 | varchar(100) | 允许空 |
password | 密码 | varchar(100) | 允许空 |
role | 角色 | varchar(100) | 允许空 |
addtime | 添加时间 | timestamp | 允许空 |
表4-5 yonghu用户信息表
列名 | 说明 | 类型 ( 长度 ) | 备注 |
id | 编号 | bigint(20) | 不允许空,主键 |
addtime | 创建时间 | timestamp | 允许空 |
zhanghao | 账号 | varchar(200) | 允许空 |
mima | 密码 | varchar(200) | 允许空 |
xingming | 姓名 | varchar(200) | 允许空 |
xingbie | 性别 | varchar(200) | 允许空 |
shouji` | 手机 | varchar(200) | 允许空 |
`youxiang` | 邮箱 | varchar(200) | 允许空 |
`shenfenzheng | 身份证 | varchar(200) | 允许空 |
zhaopian | 照片 | varchar(200) | 允许空 |
beizhu` | 备注 | longtext | 允许空 |
第5章 系统的实现
5.1 用户功能模块的实现
5.1.1系统主界面
用户可进入系统主界面查看系统信息,系统主界面的运行效果如图5-1所示.
5.1.2用户登录界面
用户要想实现图书购买等操作,必须进行登录操作,在登录界面输入正确的用户名和密码,选择登录类型,点击登录按钮进行登录,用户登录界面如图5-2所示。
5.1.3个人信息界面
用户登录后可对个人信息进行修改,个人信息界面的运行效果如图5-3所示.
图5-3 个人信息界面
5.1.4汽车详情界面
用户可选择汽车查看汽车详情信息,登录后可进行申请售后和购买操作,汽车详情界面如图5-4所示。
图5-4 汽车详情界面
5.1.5汽车美容详情界面
用户可选择汽车美容查看详情信息,登录后可进行预约操作,汽车美容详情界面展示如图5-5所示。
图5-5 汽车美容详情界面
5.1.6配件详情界面
用户可选择配件查看详情信息,登录后可进行购买操作,配件详情界面如图5-6所示。
图5-6 配件详情界面
5.1.7维修保养详情界面
用户可选择维修保养项目查看详情信息,登录后可进行预约操作,维修保养详情界面如图5-7所示。
5.2.1用户管理界面
管理员登录后可增删改查用户信息,用户管理界面如图5-8所示 。
5.2.2汽车分类管理界面
管理员可增删改查汽车分类信息,汽车分类管理界面展示如图5-9所示 。
图5-9 汽车分类管理界面
5.2.3汽车管理界面
管理员可查看、添加、修改和删除汽车信息,汽车管理界面展示如图5-10所示 。
图5-10 汽车管理界面
5.2.4汽车美容管理界面
管理员可增删改查汽车美容信息,对用户预约还可进行审核操作,汽车美容管理界面展示如图5-11所示
管理员可添加、修改和删除配件信息,配件管理界面如图5-12所示。
图5-12 配件管理界面
5.2.6售后服务管理界面
管理员可增删改查售后服务信息,售后服务管理界面展示如图5-13所示 。
图5-13 售后服务管理界面
第6章 系统测试
6.1 程序测试
在设计系统的过程中难免会出现一些不可避免的错误,而这些错误或缺陷则可能造成用户的厌恶和厌烦,所以这时候我们需要对此系统进行测试。在系统测试中我们基于两个不同的立场对系统进行测试,从用户的立场出发,普遍希望在测试运行中能够直接显示出系统的错误,而从系统开发者的立场中,更希望软件测试中不存在任何问题,这样体现出一个软件系统的稳定性。
一功能测试:从功能测试中我们首先要检测软件系统的功能是否能够满足用户的需求,如满足功能要求,我们则对系统进行完善,如不满足,则继续按照需求增添功能。
二性能测试:从性能测试中我们主要对系统的稳定性能进行测试,在系统运行过程中我们一定要保证系统运行的稳定性,使系统能够正常运行。
三安全测试:在安全测试中我们要保证账号登录安全性,所以要求系统能够保证对个人登录用户信息和用户操作等方面的安全要求,同时要保证系统减少安全漏洞,提高系统的安全性能。
6.2 测试方案计划
对测试计划的把握是测试方案的重中之重。所有的技术难点应该都被包含在这个测试计划之中。而且我们要保证能与目标形成一致性,以至于能够测试出一些主要存在的错误和一些错误的漏洞。可以完美解决这些问题就只有白盒测试或者黑盒测试。
构造测试是白盒测试的另一个名字,了解与分析程序的结构以及性能功用的,从而我们可以得到最终想要的结果并且观察出是不是每一条程序都能得到。
性能测试是黑盒测试别称,程序本身的运作通过程序的进程来观察,主要是看一下程序是不是能够像我们预期的目标那样发展,看一看我们的程序最终能不能完整的得到我们最后想要的功能和储存想得到的数据,到最后看一下我们的这个程序完整性能不能达到要求。
单元测试就是模块测试,顾名思义就是测试每个模块所承担的功能是否能够实现,这个测试就是为了找出代码在实际的设计运转中某一些小的程序所出现的偏差,很好地改正这些错误,就说明我们模块测试进行很成功过。
集成测试就是对系统的测试以及对他子系统的一些性能测试,他检查的事系统的包装程序信息。找出其中的问题。他的优势主要有以下这几点:
软件耗费较少。
可以提前发现端口的错误。
更好的地位系统中错误的位置。
从底部往上面进行的方案针对于偏下层的结构,而中间的结构就采用折中的方法。
终于到了结尾性的工作了。就是为了给用户看一下我们的系统功能是否达到了预期的效果。我采用了性能测试也就是黑盒测试对系统进行测试。
其结果是分别是:
有一定的差异在用户的需求。
再者就是结果与之差不了多少。
到了最后了,我们发现的问题都是与用户的需求存在一定的关联。
6.3 测试方法
本测试主要是系统是否能够进行服务器进行处理信息的能力,不同的用户发出不同的服务请求,系统必须能够准确的进行数据的传达,在这种情况下进行测试响应的时间、内存使用的情况和CPU占用大小等指标,系统完成设计必须保证信息的正确性,信息紊乱带来的后果是非常可怕的,所有必须要进行压力测试,通过本测试进行系统相应速度、稳定性能和处理能力进行优化。
运用黑盒子测试的测试办法,把各个不同功能的软件模板进行区分、管理。对于不同的模块独立的分装起来,在传统测试的时候要进行数据的统一测试,完成对系统的概要设计详细解读资料、需要解决的问题,及操作的详细应用说明等内容来视作测试的突破口,对测试的对象进行逐一对照检查,并针对单个的程序检测延伸至这个研发过程中单个及整个集成单元的检测中,要有规律有顺序的进行,不但可以缩短我们的工作时效,避免返工的操作,也可以对可用性负责,提高了可操作性和软件研发的实用性。通过对系统概要设计验证测试,测试系统的统一管理方式,对系统的各个功能模块以及系统的性能进行测试,验证系统的功能以及系统的性能。
6.4 测试分析
经测试本基于Vue的汽车服务商城系统界面友好、功能齐全,系统运行后很稳定,可靠,也具有数据加密的功能,满足安全性。总体说来,软件通过测试。
第7章 总结
毕业设计是最能体现出我们所学知识的应用情况,是对我们大学期间所学知识的应用巩固和提高的时刻。通过这次的毕业设计让我对软件的开发有了很深的认识了解,我的编程能力也得到了很大的提升。
本次开发的基于Vue的汽车服务商城系统已经接近尾声阶段了,在这次独立完成毕业设计的期间,我自己体会到了很多的东西,另外我很想说的就是独立开发软件真的很能让人在开发期间得到锻炼,不管是需求分析,还是系统的设计以及系统功能详细实现还有最后的测试工作,每一步都要小心翼翼的完成,一步一步来,不然任何环节出现了差错,返工起来也很麻烦,开发系统过程中,遇到了很多的难题,比如基于Vue的汽车服务商城系统需要具有什么样的功能,这个我还是思考了很久,后来同学给我提示了一下,参考别人做好的系统,看看人家设计了什么功能,自己就多多参考下,后来这个问题就很好解决了,最难的就是系统编码了,我这个人本来就比较粗心,编码出现很多不该出现的错误,不该打空格也不小心键盘空格键多敲了两下,整得自己老是程序运行出错,找了好久都没有解决,后来无奈找到室友帮忙看看,慢慢检查终于找到问题了,编码过程真的很心塞。还好东拼西凑总算完成了功能要求了。系统整体界面虽然不是很好看,但起码不花哨,用户使用起来整体感觉就是简洁,功能体验虽然有点啰嗦,但是需要的功能都已经具备了。
自己的身份目前还是学生,开发程序肯定是不会考虑周全,程序完成开发后也经过了一系列测试,整体来说还是没有发现明显的操作逻辑错误,自己在毕设制作过程中不仅知识有所增加,独立学习的能力也有所提高了,更重要的就是遇到问题向周边同学寻求帮助,这个是很有必要的。总的来说毕业设计的圆满完成,我真的觉得很自豪。
参考文献
[1] 王波编著.Java架构师指南[M].人民邮电出版社,2018:22-113.
[2] 王玉英. 基于Java的MYSQL数据库访问技术[J]. 现代计算机:专业版, 2010, 19(14):63-66
[3] 张孝祥、徐明华,JAVA基础与案例开发详解, 清华大学出版社, 2009.
[4]张宁,吴捷,杨卓,张涛. 基于MYSQL的脑电数据库的构建[J]. 广西科学院学报 ,2006 22(4):275-278.
[5]苟凌怡,魏生民. MYSQL中索引的有效选取[J].计算机工程与应用,1999,35(6):70-71.
[6]张永强.计算机软件Java编程特点及其技术分析[J].计算机产品与流通,2019(01)
:23.
[7]秦楷.JAVA语言特点及其在计算机软件开发中的运用[J].中国新通信,2019(01):91
[8]程小红. 基于Java的数据库应用框架的设计分析[J]. 电子设计工程,2018,26(21):90-94.
[9]黎雪琴,程多浪,张思平,孙新杰.信息管理系统设计过程中常见问题及对策研究[J].电脑知识与技术,2020,16(09):5-6.
[10]张振超,吴杰,陈序蓬.浅谈Java中Mysql数据库的连接与操作[J].信息记录材料,2020,21(02):144-145.
[11]基于Vue.js的Web前端应用研究[J]. 朱二华.科技与创新.2017(20)
[12]闾燕.基于用户体验的购物网站界面设计研究[J].中国包装工业,2014,11(16)19-20
[13]Pratiwi Rimadani, Shalihat Ayu, Dewantisari Deti, et al. Correlation study between gastronomy culture and content of selenium towards prevalence of cardiovascular and diabetes in West Java, Indonesia. 2021, 64
[14]Arief Ginanjar, Mokhamad Hendayun. Spring Framework Reliability Investigation Against Database Bridging Layer Using Java Platform. 2019, 161:1036-1045.
[15]Lunghi Carlotta,Zongo Arsène,Tardif Isabelle,Demers Éric,etc. Depression but not non-persistence to antidiabetic drugs is associated with mortality in type 2 diabetes: A nested case-control study[J]. Diabetes Research and Clinical Practice,2021,171.
[16]Tchouanguem Djuedja Justine Flore,Abanda Fonbeyin Henry,Kamsu-Foguem Bernard,etc. An integrated Linked Building Data system: AEC industry case[J]. Advances in Engineering Software,2021,152.
致 谢
首先要对我本次论文的指导老师表示深深的敬意,她对于我的学习和生活给予了最多的关怀和最悉心的指导。同时,我还要感谢大学期间我所有的带课老师,他们对我的生活、学习等各方面都付出了许多关怀,没有他们的带领,我不会成为一名合格的毕业生没有他们在课堂上认真详细教课、辅导,我无法顺利完成毕业设计,我想向他们表达最真诚的感谢!感谢我们学院的所有领导,为我提供所需要的设备和资料!还要感谢我身边的同学和朋友们,感谢他们对我的关心和帮助!
我还要感谢我最亲近的家人,是因为有了他们在学业上对我的全力支持以及在生活上的关怀才能支撑着我走到现在!
祝愿学校的领导教师以及和我一起奋斗的同学们工作顺利,事业有成,也要祝愿学校的前景更加辉煌。
最后,我要向牺牲了休息时间来对本文进行审阅,评议和参与论文答辩的各位老师表示深深的感谢。在此,衷心的谢谢您们!
核心代码展示
/**
* 登录相关
*/
@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的网上购物商城销售系统
⬇️文章末尾可以获取联系方式,需要源码可以联系(源码不开源)⬇️
⚡感兴趣大家可以点点关注收藏,后续更新更多项目资料。⚡