title: Springboot+Vue的项目学习总结
top: false
cover: false
toc: true
mathjax: false
date: 2023-12-03 11:16:54
author: Lurume
img:
coverImg:
password:
summary:
tags:
categories:
十月十一月这两个月算挺忙的,也都忘了更新了,今天有时间就做个简单的总结吧。在这两个月的时间里我看完了两个视频,首先是看了一个简单的Springboot+Vue的基础知识入门视频,但是对项目结构还是不熟悉,也忘的很快。之后我又找了个播放量高的视频跟着一起做项目。刚好这学期数据库实践的大作业就是完成一个数据库管理系统,所以我选择的是仓库后台管理系统,算是一个烂大街的项目了,难度也不高,主要是为了熟悉项目流程和结构。这里不得不提一嘴,计算机没落的太快了,大一时大家都说学java工作多工资又高,这才每两年就又说饱和了,java月薪两三千,真是太难了。
整个项目过程中,前半部分我是老老实实的跟着做的,后面重复代码太多了,基本上就是改改名字什么的,我就直接复制粘贴源码了,整个流程倒也还算顺利。最后完成的时候我又想着说太简陋了,加了功能,本来画了一个小时加好了,第二天测试又突然bug,改了一个晚上。
这个bug就是如果我想要新增物品时进行记录,那么在save函数中直接先调用doSave再调用doAddGoods的话会发生500的错误。经过调试分析,原因就在于数据存储的过程过慢,导致我添加记录时没办法根物品名称查询到物品的ID,我尝试使用premise异步执行但是也还是一样的结果,最终也没搞懂要怎么才能等存储完再添加记录,于是我换了一种思路。
新的思路就是在我新增之后页面是会刷新的,也就是执行loadPost函数来查询物品,那么我就在新增物品时先记录物品名称,然后如果新查询到的列表中的最后一项物品的名字与新增物品的名字相同,也就是说新增成功了,然后调用doAddGoods函数来新增记录,这种情况下就能完美的保证新增完之后再进行记录,测试下来是没有bug的。
接下来是我的实验报告部分:
*实验三*
学号: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 图)设计*
*三、系统中每张表的说明*
*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请求:
后端通过调用storageService的save方法,将传入的Storage对象存储到数据库中:
查询:
前端向后端发送post请求查询数据:
后端通过封装好的方法生成查询条件语句:
*五、系统主要功能界面介绍(需使用截图)*
*六、实验结果总结:(分析系统运行效果,说明系统优缺点及改进方向)*
系统整体运行流畅,基本功能都有实现,且能正确运行。不确定会不会有没察觉到bug。
我认为这个系统的优点是具有极强的可拓展性以及较为完善的功能。权限管理也较为优秀,对于不同权限的人员展示不同的功能。并且会记录出入库操作,方便后期查看。
缺点的话就是我并没有深入仓储行业进行调查,也许在表的设计方面具有一些缺陷或者与实际需求不符的地方。还有就是可能会存在我没测试出来的问题。并且没有可视化的图表界面以及数据统计功能。
改进方向的话,我认为可以为其添加更加严格的权限管理,添加更多的约束条件。并且超级管理员可以自由的设置各级管理员的权限,方便根据实际情况调整。