加载中...

Springboot+Vue的项目学习总结


十月十一月这两个月算挺忙的,也都忘了更新了,今天有时间就做个简单的总结吧。在这两个月的时间里我看完了两个视频,首先是看了一个简单的Springboot+Vue的基础知识入门视频,但是对项目结构还是不熟悉,也忘的很快。之后我又找了个播放量高的视频跟着一起做项目。刚好这学期数据库实践的大作业就是完成一个数据库管理系统,所以我选择的是仓库后台管理系统,算是一个烂大街的项目了,难度也不高,主要是为了熟悉项目流程和结构。这里不得不提一嘴,计算机没落的太快了,大一时大家都说学java工作多工资又高,这才每两年就又说饱和了,java月薪两三千,真是太难了。

整个项目过程中,前半部分我是老老实实的跟着做的,后面重复代码太多了,基本上就是改改名字什么的,我就直接复制粘贴源码了,整个流程倒也还算顺利。最后完成的时候我又想着说太简陋了,加了功能,本来画了一个小时加好了,第二天测试又突然bug,改了一个晚上。

这个bug就是如果我想要新增物品时进行记录,那么在save函数中直接先调用doSave再调用doAddGoods的话会发生500的错误。经过调试分析,原因就在于数据存储的过程过慢,导致我添加记录时没办法根物品名称查询到物品的ID,我尝试使用premise异步执行但是也还是一样的结果,最终也没搞懂要怎么才能等存储完再添加记录,于是我换了一种思路。

新的思路就是在我新增之后页面是会刷新的,也就是执行loadPost函数来查询物品,那么我就在新增物品时先记录物品名称,然后如果新查询到的列表中的最后一项物品的名字与新增物品的名字相同,也就是说新增成功了,然后调用doAddGoods函数来新增记录,这种情况下就能完美的保证新增完之后再进行记录,测试下来是没有bug的。

image-20231203112435073

接下来是我的实验报告部分:

*实验三*

学号:102101514 姓名:刘顺洋 专业:计算机科学与技术 班级:5班

《数据库应用实践》实验三:数据库应用系统的开发

实验环境:

CPU:AMD Ryzen 5 5600H with Radeon Graphics

显卡:NVIDIA GeForce RTX 3050 Laptop GPU

操作系统:Microsoft Windows 10 家庭中文版

数据库管理系统:MySQL

数据库可视化软件:Navicat Premium 16

编译器:IntelliJ IDEA

浏览器:Google Chrome

实验内容:

*一、系统选题需求情况及任务分工情况说明*

任务分工:无组队

项目名称:仓库管理系统

内容简介:
该项目旨在通过使用Spring Boot、Vue和MySQL等技术,实现一个完整的仓库后台管理系统。系统将包括对管理员权限、用户、仓库和物品的增删改查功能,以及记录功能。以下是系统的主要需求情况:

\1. 用户登录与权限管理:

· 用户通过账号和密码进行登录,系统进行身份验证和授权。

· 设有一个超级管理员账号,具有系统中所有权限,包括用户管理和仓库管理等。

\2. 管理员权限管理:

· 超级管理员可以管理用户的权限,包括创建、编辑和删除用户账号。

· 管理员可以分配不同的权限级别给其他用户,以控制其对仓库和物品的操作权限。

\3. 用户管理:

· 管理员可以管理用户信息,包括添加新用户、编辑用户信息和删除用户账号。

· 用户信息包括用户名、密码、姓名、联系方式等基本信息。

\4. 仓库管理:

· 用户可以管理仓库信息,包括添加新的仓库、编辑仓库信息和删除仓库。

· 仓库信息包括仓库名称、地址、负责人等基本信息。

\5. 物品管理:

· 用户可以管理仓库中的物品信息,包括添加新的物品、编辑物品信息和删除物品。

· 物品信息应包括物品名称、数量、规格、存放位置等基本信息。

\6. 记录功能:

· 系统应记录用户对仓库和物品的操作记录,包括添加、编辑和删除等操作。

· 记录应包括操作时间、操作人员、操作类型等信息,以便进行操作追踪和审计。

通过实现以上需求,仓库管理系统将提供一个方便、高效的后台管理平台,用于管理仓库中的物品信息和用户权限。该系统可以帮助管理员更好地控制仓库资源,提高管理效率,并提供操作记录用于追踪和审计。同时,系统的用户管理和权限分配功能可以确保仅授权人员能够进行相关操作,加强了系统的安全性和可靠性。

*二、系统的概念数据模型(E-R 图)设计*

img

*三、系统中每张表的说明*

*1、用户表(User Table):*

l 表名:user

l 描述:该表存储用户信息。

l 字段:

l id:主键,自增长。表示用户的唯一标识符。

l no:用户账号。

l name:用户姓名。

l password:用户密码。

l age:用户年龄。

l sex:用户性别。

l phone:用户电话号码。

l role_id:用户角色。0表示超级管理员,1表示管理员,2表示普通用户。

l isValid:表示用户是否有效。Y表示有效,其他值表示无效。

*2、菜单表(Menu Table):*

l 表名:menu

l 描述:该表存储菜单信息。

l 字段:

l id:表示菜单的唯一标识符。

l menuCode:菜单编码。

l menuName:菜单名称。

l menuLevel:菜单级别。

l menuParentCode:菜单的父级编码。

l menuClick:点击触发的函数。

l menuRight:菜单权限。0表示超级管理员,1表示管理员,2表示普通用户,可以用逗号组合使用。

l menuComponent:菜单组件。

l menuIcon:菜单图标。

*3、仓库表(Storage Table):*

l 表名:storage

l 描述:该表存储仓库信息。

l 字段:

l id:主键,自增长。表示仓库的唯一标识符。

l name:仓库名称。

l city:仓库所在城市。

l manager:仓库负责人。

l remark:备注信息。

*4、物品分类表(GoodsType Table):*

l 表名:goodsType

l 描述:该表存储物品分类信息。

l 字段:

l id:主键,自增长。表示物品分类的唯一标识符。

l name:分类名称。

l remark:备注信息。

*5、物品表(Goods Table):*

l 表名:goods

l 描述:该表存储物品信息。

l 字段:

l id:主键,自增长。表示物品的唯一标识符。

l name:货物名称。

l storage:仓库ID。

l goodsType:分类ID。

l count:数量。

l remark:备注信息。

*6、记录表(Record Table):*

l 表名:record

l 描述:该表存储记录信息。

l 字段:

l id:主键,自增长。表示记录的唯一标识符。

l goods:货品ID。

l userId:取货人/补货人ID。

l admin_id:操作人ID。

l count:数量。

l createtime:操作时间。

l remark:备注信息。

*四、系统运行环境配置,安装操作说明,前端与后台数据库连接用到的关键语句说明*

*运行环境配置:*

l java JDK1.8(8)版本

l IntelliJ IDEA

l maven-3.9.4

l Node.js

l MySQL

*安装操作说明:*

配置完环境之后在IDEA中打开项目文件夹。在wms-web目录下以管理员身份运行终端,执行npm install命令下载项目所需的依赖。

*运行操作:*

****前端:****在wms-web目录下终端执行npm run serve指令。

****后端:****程序界面右上角运行

*前端与后台数据库连接用到的关键语句:*

保存:

前端向后端发送post请求:

img

后端通过调用storageService的save方法,将传入的Storage对象存储到数据库中:

img

查询:

前端向后端发送post请求查询数据:

img

后端通过封装好的方法生成查询条件语句:

img

img

*五、系统主要功能界面介绍(需使用截图)*

img

img

img

img

img

img

img

img

img

*六、实验结果总结:(分析系统运行效果,说明系统优缺点及改进方向)*

系统整体运行流畅,基本功能都有实现,且能正确运行。不确定会不会有没察觉到bug。

我认为这个系统的优点是具有极强的可拓展性以及较为完善的功能。权限管理也较为优秀,对于不同权限的人员展示不同的功能。并且会记录出入库操作,方便后期查看。

缺点的话就是我并没有深入仓储行业进行调查,也许在表的设计方面具有一些缺陷或者与实际需求不符的地方。还有就是可能会存在我没测试出来的问题。并且没有可视化的图表界面以及数据统计功能。

改进方向的话,我认为可以为其添加更加严格的权限管理,添加更多的约束条件。并且超级管理员可以自由的设置各级管理员的权限,方便根据实际情况调整。

编程工作总结:

*(系统开发所付出的努力、面临的困难,自学了哪些相关知识;自己负责什么模块,遇到什么问题怎么解决的,有没有自己创新的设计,开发的体会与收获等。请认真完成,不少于 500 字。注意:分组完成的同学只说明自己完成的工作,不要写别人的工作)*

该系统是我在b站上找的视频跟做的。整个跟做视频时长11.5个小时,但是由于我没有半点Springboot和Vue的基础,所以其实在看跟做视频前我预先观看了一个10小时的速成视频。总体视频时长加起来有21.5个小时。在这期间还需要按时上课,以及其他课程的考试和作业等等。所以我遇到的第一个困难就是时间安排问题,并且实际操作起来花费的时间肯定远超视频时长。

第二个大问题出现在环境配置上,老话说的好“万事开头难”。对于计算机专业的学生来说配置环境就是第一个拦路虎,你总是无法预料到自己的电脑会出现什么奇奇怪怪的错误。Java的版本与maven版本不匹配的问题就卡了我半天,并且由于我以前下载过JDK17版本,导致重建项目后我需要一个个去设置JDK版本才能正常运行,再就是maven依赖包的问题,我总是报错下载依赖失败,跟着网上的解决办法做了好几遍,也修改过maven的权限,最终通过降低SpringBoot的starter依赖版本解决了问题。还有配置环境中遇到的各种问题真的是折磨人,好在我是在国庆放假期间配置的,时间充裕。

在这个项目中我自学了Springboot和Vue。了解了现在主流的框架,学会了如何将前端与后台数据库建立连接,第一次接触到了整个完整的前后端分离的项目。

整个项目的主体框架是跟做的,做完后我在项目的基础上修改了仓库表的结构,本身的仓库表过于简单,我认为与实际相差很大便进行了补充完善。并且在新增界面自主添加了城市的选择,利用的是Element-UI的element-china-area-data库,该库封装了全国所有的省市区县甚至村的数据。还有视频中本身对于新增物品没有进行记录,但是我认为新增物品也是一个需要记录的行为,于是便根据项目经验添加了新增操作的记录。

第一次完整的开发一个项目颇有成就感,期间遇到的种种问题最终也都得到了解决。虽然只是一个简单的项目,但是也耗费了我两个月的时间,我非常庆幸自己较早开始做这件事,为自己预留了充足的时间,才不会导致最后火急火燎的赶DLL。此次项目的顺利完成给了我很大的鼓励,我自信能够在后续的学习生活中继续去做自己的项目。也感谢数据库这门课程以及老师给了我一个推力,驱动我行动起来。


文章作者: Lurume
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Lurume !
  目录