基于springboot+Vue的宿舍管理系统前后端分离(程序+详细文档+数据库)

news/2025/2/23 3:30:47/

大家好✌!我是CZ淡陌。一名专注以理论为基础实战为主的技术博主,将再这里为大家分享优质的实战项目,本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目,希望你能有所收获,少走一些弯路,向着优秀程序员前行!
🍅更多优质项目👇🏻👇🏻可点击下方获取🍅
文章底部或评论区获取🍅
Java项目精品实战案例《100套》

文章目录

  • 项目介绍
  • 一、选题背景意义
      • 1.项目背景
      • 2.系统设计
      • 3.技术栈
  • 二、运行效果
      • 1.登录
      • 2.宿舍模块
      • 3.学生模块
      • 4.楼层模块
      • 5.学生记录
      • 6.部分代码实现
    • 总结


📣 有源码 查看源码

项目介绍

本系统专门针对学校的公寓管理而开发的一个功能齐全、操作简单的学生公寓管理系统。适合学校的宿舍管理人员使用。本系统实现以下基本功能:管理员可以对公寓进行全程管理,不仅可以管理学生,还可以管理寝室人员及外来人员及出入物品,也能方便的进行统计和更改。把软件工程中规范化的软件开发方法应用到本次学生公寓管理系统的开发过程中,以经济地开发出高质量的软件并有效地维护它。


一、选题背景意义

1.项目背景

需求分析处于软件开发过程的开始阶段, 它对于整个软件开发过程以及软件产品质量至关重要,一个系统的产生最重要的就是要知道用户的需求,才能按照用户想要的进行改进。
本设计要实现的是高校学生宿舍管理系统,在设计该系统时,应尽可能的贴近学生,便于用户操作。系统在实现上应该具有如下功能:
(1)系统要求用户必须输入正确的用户名和密码才能进入系统;
(2)系统应该提供学生住宿情况的基木登记。
(3)系统应提供人员来访登记及结束访问的详细登记。
(4)系统应提供学生在校期间物品出入宿舍楼的详细情况登记。
(5)系统应提供查询功能,以方便用户对学生基本信息的查询 (要实现按多种条件的查询)及楼房信息的查询。
(6)系统应提供增加、删除、修改用户帐户的功能

2.系统设计

在整体设计中,我们将宿舍管理系统分为六个大的功能:系统管理功能、公寓管理功能信息查询功能、出入登记功能、信息修改功能。
系统管理功能包括:用户登录、用户密码修改、用户管理、退出系统五个部分。
公寓管理功能包括:楼房管理、宿舍管理二个大的部分。
信息查询功能基本上包括:按学号进行查询、按姓名进行查询、按班级查询、按寝室号查询、每栋楼房住宿情况查询五个部分。
出入登记功能包括:进楼物品登记、出楼物品登记、人员来访登记、结束访问登记四个功能部分。
信息修改功能包括:学生基本信息修改、员工基本信息修改等。

3.技术栈

开发系统:Windows
架构模式:MVC/前后端分离
JDK版本:Java JDK1.8(推荐)
开发工具:IDEA
数据库版本: mysql8.0(推荐)
数据库可视化工具: navicat
服务器:SpringBoot自带 apache tomcat
主要技术:Java,Springboot,mybatis,mysql,jquery,html,vue

二、运行效果

1.登录

在这里插入图片描述

2.宿舍模块

在这里插入图片描述在这里插入图片描述

3.学生模块

在这里插入图片描述
在这里插入图片描述

4.楼层模块

在这里插入图片描述在这里插入图片描述

5.学生记录

在这里插入图片描述在这里插入图片描述在这里插入图片描述

6.部分代码实现

@Service
public class SystemAdminServiceImpl extends ServiceImpl<SystemAdminMapper, SystemAdmin> implements SystemAdminService {@Autowiredprivate SystemAdminMapper systemAdminMapper;@Overridepublic ResultVO login(RuleForm ruleForm) {//1、判断用户名是否存在QueryWrapper<SystemAdmin> queryWrapper = new QueryWrapper<>();queryWrapper.eq("username", ruleForm.getUsername());SystemAdmin systemAdmin = this.systemAdminMapper.selectOne(queryWrapper);ResultVO resultVO = new ResultVO();if (systemAdmin == null) {resultVO.setCode(-1);} else {//2、判断密码是否正确if (!systemAdmin.getPassword().equals(ruleForm.getPassword())) {resultVO.setCode(-2);} else {resultVO.setCode(0);resultVO.setData(systemAdmin);}}return resultVO;}
}
@Service
public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> implements StudentService {@Autowiredprivate StudentMapper studentMapper;@Autowiredprivate DormitoryMapper dormitoryMapper;@Overridepublic Boolean saveStudent(Student student) {//添加学生数据student.setCreateDate(CommonUtil.createDate());int insert = this.studentMapper.insert(student);if (insert != 1) return false;//修改宿舍数据Dormitory dormitory = this.dormitoryMapper.selectById(student.getDormitoryId());if (dormitory.getAvailable() == 0) {return false;}dormitory.setAvailable(dormitory.getAvailable() - 1);int update = this.dormitoryMapper.updateById(dormitory);if (update != 1) return false;return true;}@Overridepublic PageVO list(Integer page, Integer size) {Page<Student> studentPage = new Page<>(page, size);Page<Student> resultPage = this.studentMapper.selectPage(studentPage, null);List<Student> studentList = resultPage.getRecords();//VO转换List<StudentVO> studentVOList = new ArrayList<>();for (Student student : studentList) {StudentVO studentVO = new StudentVO();BeanUtils.copyProperties(student, studentVO);Dormitory dormitory = this.dormitoryMapper.selectById(student.getDormitoryId());studentVO.setDormitoryName(dormitory.getName());studentVOList.add(studentVO);}PageVO pageVO = new PageVO();pageVO.setData(studentVOList);pageVO.setTotal(resultPage.getTotal());return pageVO;}@Overridepublic PageVO search(SearchForm searchForm) {Page<Student> studentPage = new Page<>(searchForm.getPage(), searchForm.getSize());Page<Student> resultPage = null;if (searchForm.getValue().equals("")) {resultPage = this.studentMapper.selectPage(studentPage, null);} else {QueryWrapper<Student> queryWrapper = new QueryWrapper<>();queryWrapper.like(searchForm.getKey(), searchForm.getValue());resultPage = this.studentMapper.selectPage(studentPage, queryWrapper);}List<Student> studentList = resultPage.getRecords();//VO转换List<StudentVO> studentVOList = new ArrayList<>();for (Student student : studentList) {StudentVO studentVO = new StudentVO();BeanUtils.copyProperties(student, studentVO);Dormitory dormitory = this.dormitoryMapper.selectById(student.getDormitoryId());studentVO.setDormitoryName(dormitory.getName());studentVOList.add(studentVO);}PageVO pageVO = new PageVO();pageVO.setData(studentVOList);pageVO.setTotal(resultPage.getTotal());return pageVO;}@Overridepublic Boolean update(StudentForm studentForm) {//更新学生信息Student student = new Student();BeanUtils.copyProperties(studentForm, student);int update = this.studentMapper.updateById(student);if (update != 1) return false;//更新宿舍数据if (!studentForm.getDormitoryId().equals(studentForm.getOldDormitoryId())) {//old+1,new-1try {this.dormitoryMapper.addAvailable(studentForm.getOldDormitoryId());this.dormitoryMapper.subAvailable(studentForm.getDormitoryId());} catch (Exception e) {return false;}}return true;}@Overridepublic Boolean deleteById(Integer id) {//修改宿舍数据Student student = this.studentMapper.selectById(id);try {Dormitory dormitory = this.dormitoryMapper.selectById(student.getDormitoryId());if (dormitory.getType() > dormitory.getAvailable()) {this.dormitoryMapper.addAvailable(student.getDormitoryId());}} catch (Exception e) {return false;}//删除学生数据int delete = this.studentMapper.deleteById(id);if (delete != 1) return false;return true;}
}

📝分享的所有Java项目源码均包含(前端+后台+数据库),可做毕业设计或课程设计,欢迎留言分享问题,交流经验
🍅更多优质项目👇🏻👇🏻可点击下方获取🍅文章底部或评论区获取🍅
Java项目精品实战案例《100套》

总结

📣 有源码 查看源码


http://www.ppmy.cn/news/8031.html

相关文章

【自学Java】Java语言HelloWorld

Java语言HelloWorld详解 Java语言HelloWorld详解教程 我们使用 java 编辑器&#xff0c;新建一个 Helloworld.java 文件,输入如下内容&#xff1a; package com.haicoder;public class HelloWorld {public static void main(String[] args) {System.out.println("嗨客网…

app渗透为何一开启代理就断网?

前言 今天测试app&#xff0c;开启安卓代理&#xff0c;一点击准备登录时&#xff0c;抛出了如下提示“java.security.cert.CertPathValidatorException: Trust anchor for certification path not found”&#xff0c;大概意思就是证书的安全性问题 而当我把代理关闭了&#…

50+Vue经典面试题源码级详解,你值得收藏!(一天更新一题,持续更新!!!)

Vue经典面试题源码级详解1、Vue组件之间通信方式有哪些&#xff1f;分析&#xff1a;思路分析&#xff1a;回答范例&#xff1a;1. 组件通信常用方式有以下8种&#xff1a;2、根据组件之间关系讨论组件通信最为清晰有效2、v-if 和 v-for哪个优先级更高分析&#xff1a;思路分析…

858. Prim算法求最小生成树

给定一个 nn 个点 mm 条边的无向图&#xff0c;图中可能存在重边和自环&#xff0c;边权可能为负数。 求最小生成树的树边权重之和&#xff0c;如果最小生成树不存在则输出 impossible。 给定一张边带权的无向图 G(V,E)G(V,E)&#xff0c;其中 VV 表示图中点的集合&#xff0…

SpringBoot2-5

先解决一个问题【报错1】java: 无效的目标发行版: 17 修改位置&#xff1a;maven的配置需要改为选取本地maven所在目录(这些都是java指定了1.8比较低但是又都用的版本导致) 再解决一个问题【报错2】 java: 无法访问org.springframework.boot.SpringApplication 错误的类文件…

数据结构进阶 二叉树OJ题一

作者&#xff1a;小萌新 专栏&#xff1a;数据结构进阶 作者简介&#xff1a;大二学生 希望能和大家一起进步&#xff01; 本篇博客简介&#xff1a;介绍几道二叉树的oj题 二叉树OJ题题目一 根据二叉树创建字符串题目二 二叉树的层序遍历题目三 二叉树的最近公共祖先题目一 根据…

React学习08-React Redux

Redux Redux理解 redux是一个专门用于做状态管理的JS库(不是react插件库)。可以用在React, Angular, Vue等项目中, 但基本与React配合使用。作用: 集中式管理React应用中多个组件共享的状态。Redux只负责管理状态 文档 英文文档 中文文档 Github 需要使用Redux的情况…

公网远程连接windows SQL Server数据库【内网穿透】

文章目录1. 本地安装配置SQL Server2. 将本地sqlserver服务暴露至公网2.1 本地安装cpolar内网穿透2.2 创建隧道3. 公网远程连接sqlserver3.1 使用命令行远程连接sqlserver3.2 使用navicat premium图形界面远程连接sqlserver3.3 使用SSMS图形界面远程连接sqlserver疫情当下,居家…