基于springboot的高校宿舍管理系统

精彩专栏推荐订阅:在 下方专栏👇🏻👇🏻👇🏻👇🏻

💖🔥作者主页计算机毕设木哥🔥 💖

一、项目介绍

1.1研究背景及意义

宿舍是广大学生们日常的学习与生活中的重要地点,也是促进广大学生思想素质教育及文明品格培养的一个重要阵地。因此,宿舍管理是高校学工管理工作中比较重要的一项,不仅可以作为体现学校管理水平高低的一个指标,在一定程度上也会直接或间接地影响着学校办学的水平和学生的综合素质。
近些年来,随着高校招生规模的不断发展壮大,学生的人数也在逐年地持续增加,高校的宿舍资源越来越紧张,宿舍管理的事务也日渐混乱和沉重,管理工作“难、繁、杂”的问题日益凸显。宿舍管理一直以来都是采用手工记录、纸质存档的账本式管理方式,这种工作模式在多年的使用下暴露出不少的问题:数据和文件积少成多,巨大的信息量使得查阅、统计某些信息时很不方便,造成管理上的困难;信息分散存储,无法有效共享,更新和维护困难,不同地方的信息可能不一致;信息的保密性差,不能保证学生的隐私等等。以上问题给宿管人员的工作带来了很大的不便,以致工作时容易出错,办事效率低,耗费人力资源,间接提高了管理成本。因此,传统的管理思想和经营模式早已不能适应当今高校的管理需要。随着计算机网络的普遍覆盖和移动互联网信息技术的普遍应用,借助信息化手段取代传统的管理模式势在必行。

1.2国外研究现状

目前,国外高校在宿舍管理上已经拥有了相当成熟的经验,这方面的技术也发展得比较成熟,拥有一套比较完善的信息化开发和研究框架[9]。欧美多数高校都建设有自己的宿舍管理系统,由专业的技术团队对本校的系统进行开发、升级和维护,采用的技术也比较与时俱进,许多新兴技术都得到了实施应用。比如生物特征识别技术的使用,其中最常见的为人脸识别技术,高校事先把学生的人脸信息录入到系统中[10],学生进出宿舍楼只需要站在机器前刷一下脸;也有部分高校采取另一种模式 ——指纹识别技术来进行身份认证,学生只需要在指纹识别器上按一下即可,整个过程几秒钟不到,方便快捷,有效地防止了校外人员乱入的现象。

1.3功能模块图

在这里插入图片描述

二、开发环境

  • 开发语言:Java
  • 数据库:MySQL
  • 系统架构:B/S
  • 后端:SpringBoot
  • 前端:html
  • 工具:IDEA或者Eclipse,JDK1.8,Maven

三、项目展示

登录页面:
在这里插入图片描述管理员模块:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
宿管模块:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、代码展示

package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;

import pojo.DorInfo;

public class DorInfoDao {

private final static String driverName = "com.mysql.cj.jdbc.Driver";
private final static String url = "jdbc:mysql://localhost:3306/dbdormitory?"
		+ "user=root&password=root&useUnicode=true&characterEncoding=UTF-8"
		+ "&serverTimezone=UTC&useSSL=false";





//读取其中一组
public static List<DorInfo> readOneList2(String name ,String value) {
	Connection conn = null;
	PreparedStatement ps = null;
	ResultSet rs=null;
	List<DorInfo> list=new ArrayList<DorInfo>();
	
	try {
		Class.forName(driverName);
		conn = DriverManager.getConnection(url);
		ps = conn.prepareStatement("select * from dor_info where "+ name + " like ?"); 
		ps.setString(1, "%"+value+"%");
		rs = ps.executeQuery();
		
		while(rs.next()) {
			String dor_id=rs.getString("dor_id");
			String dor_phone=rs.getString("dor_phone");
			String resident_num=rs.getString("resident_num");
			String occupied_num=rs.getString("occupied_num");
			
			DorInfo dg=new DorInfo(dor_id,dor_phone,resident_num,occupied_num);
			list.add(dg);		
		}
	}catch(Exception e) {
		e.printStackTrace();
	}finally {
		try {
		if(rs!=null) {
			rs.close();
		}
		if(ps!=null) {
			ps.close();
		}
		if(conn!=null) {
			conn.close();
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		
	}
	return list;
}
//读取其中一组
public static List<DorInfo> readOneList(String name ,String value) {
	Connection conn = null;
	PreparedStatement ps = null;
	ResultSet rs=null;
	List<DorInfo> list=new ArrayList<DorInfo>();
	
	try {
		Class.forName(driverName);
		conn = DriverManager.getConnection(url);
		ps = conn.prepareStatement("select * from dor_info where "+ name +" = " +value);
		rs = ps.executeQuery();
		
		while(rs.next()) {
			String dor_id=rs.getString("dor_id");
			String dor_phone=rs.getString("dor_phone");
			String resident_num=rs.getString("resident_num");
			String occupied_num=rs.getString("occupied_num");
			
			DorInfo dg=new DorInfo(dor_id,dor_phone,resident_num,occupied_num);
			list.add(dg);		
		}
	}catch(Exception e) {
		e.printStackTrace();
	}finally {
		try {
		if(rs!=null) {
			rs.close();
		}
		if(ps!=null) {
			ps.close();
		}
		if(conn!=null) {
			conn.close();
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		
	}
	return list;
}
//读取
public static List<DorInfo> readList() {
	Connection conn = null;
	PreparedStatement ps = null;
	ResultSet rs=null;
	List<DorInfo> list=new ArrayList<DorInfo>();
	
	try {
		Class.forName(driverName);
		conn = DriverManager.getConnection(url);
		ps = conn.prepareStatement("select * from dor_info");
		rs = ps.executeQuery();
		
		while(rs.next()) {
			String dor_id=rs.getString("dor_id");
			String dor_phone=rs.getString("dor_phone");
			String resident_num=rs.getString("resident_num");
			String occupied_num=rs.getString("occupied_num");
			
			DorInfo dg=new DorInfo(dor_id,dor_phone,resident_num,occupied_num);
			list.add(dg);
			
		}
	}catch(Exception e) {
		e.printStackTrace();
	}finally {
		try {
		if(rs!=null) {
			rs.close();
		}
		if(ps!=null) {
			ps.close();
		}
		if(conn!=null) {
			conn.close();
			}
		}catch(SQLException e) {
			e.printStackTrace();
		}
		
	}
	return list;
}

// 添加
@SuppressWarnings("static-access")
public static void insert(String stu_id, String password, String name, String department) {
	Connection conn = null;
	PreparedStatement ps = null;
	
	try {
		Class.forName(driverName);
		conn = DriverManager.getConnection(url);
		ps = conn.prepareStatement("insert into stu_info values(?,?,?,?,?,?,?,?)");
		ps.setString(1, stu_id);
		ps.setString(2, password);
		ps.setString(3, name);
		ps.setString(4, name);
		
		
		ps.executeUpdate();
		
		
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		try {
			if (ps != null) {
				ps.close();
			}
			if (conn != null) {
				conn.close();
			}
		} catch (Exception e2) {
			e2.printStackTrace();
		}
	}
}


//删除
public static void delete(String id){
	Connection conn = null;
	PreparedStatement ps = null;
	
	try {
		Class.forName(driverName);
		conn = DriverManager.getConnection(url);
		ps = conn.prepareStatement("delete from dor_info where stu_id=?");
		ps.setString(1, id);
		ps.executeUpdate();
	} catch (Exception e) {
		e.printStackTrace();
	} finally {
		try {
			if (ps != null) {
				ps.close();
			}
			if (conn != null) {
				conn.close();
			}
		} catch (Exception e2) {
			e2.printStackTrace();
		}
	}
}

public ResultSet  Search(String sql, String str[]) {
	Connection conn = null;
	PreparedStatement ps = null;
	ResultSet rs=null;
    try {
    	Class.forName(driverName);
		conn = DriverManager.getConnection(url);
        ps =conn.prepareStatement(sql);
        if (str != null) {
            for (int i = 0; i < str.length; i++) {
                ps.setString(i + 1, str[i]);
            }
        }
        rs = ps.executeQuery();

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return rs;
}

public int AddU(String sql, String str[]) {
    int a = 0;
    Connection conn = null;
	PreparedStatement ps = null;
    try {
    	Class.forName(driverName);
		conn = DriverManager.getConnection(url);
        ps = conn.prepareStatement(sql);
        if (str != null) {
            for (int i = 0; i < str.length; i++) {
                ps.setString(i + 1, str[i]);
            }
        }
        a = ps.executeUpdate();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return a;
}

}

五、论文参考

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
系统功能1、管理管理:根据不同角色设置不同的管理权限;2、小区管理管理多个小区资料,新增、修改、删除、摄像头管理等功能;3、小区摄像头管理:摄像头的新增、修改及删除功能;4、居民管理:居民资料新增,修改,删除,Excel批量导入,导出,居民人脸采集;5、访客登记:访客的新增,修改,删除,进入登记,离开登记,查询等功能;6、人脸识别:居民出入小区人脸识别功能的实现,使用腾讯AI人脸识别技术实现;7、出入记录:居民出入小区的人脸识别记录查询;8、小区地图:所有小区在地图的分布情况,使用百度地图实现;9、使用Echarts技术实现小区人员分类统计(柱状)图表;10、菜单管理:新增、修改、删除菜单功能(包括目录,菜单,按钮)11、角色管理:新增、修改、删除角色(系统角色、普通角色)12、系统日志:记录了系统中所有操作的日志,方便发现问题,查找原因;运行环境:  1、JDK1.8及以上版本  2、Tomcat 8.5及以上版本  3、MySql 5.7及以上版本  4、Redis开发工具:  1、前端开发工具:Visual Studio Code  2、后端开发工具:Intellij IDEA使用技术:  1、Vue2.x+ElementUI(前端)  2、Springboot+MyBatisPlus+Redis+Shiro+Swagger(后端)  3、人脸识别技术(腾讯AI)  4、MySql数据库技术  5、Redis缓存技术  6、百度地图  7、Echarts图表技术  8、POI Excel导入导出技术  9、Shiro权限控制:菜单管理,角色管理,权限管理(按钮及用户级别权限)  10、 Swagger接口配置管理,接口文档管理技术  11、Token单点技术(一个用户不能同时在多个设备登录使用)  12、前后端分离跨域设置等技术

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机毕业设计木哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值