👉文末查看项目功能视频演示+获取源码+sql脚本+视频导入教程视频
1 、功能描述
基于SSM的宿舍管理系统拥有两种角色,分别为管理员和宿管,具体功能如下:
管理员:学生管理、班级管理、宿舍管理、卫生管理、访客管理、用户管理等
宿管:宿舍管理(人员信息管理、维修登记)、卫生管理、访客管理等
1.1 背景描述
基于SSM的宿舍管理系统是一个基于Spring、SpringMVC和MyBatis框架的Web应用程序,旨在实现宿舍管理的信息化。该系统包括宿舍信息管理、宿舍分配管理、宿舍报修管理等功能,可提高宿舍管理的效率和准确性。
2、项目技术
后端框架:SSM(Spring、SpringMVC、Mybatis)
前端框架:Layui、jsp、css、JavaScript、JQuery
2.1 SSM
SSM(Spring+SpringMVC+MyBatis)是目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级应用系统。其中,Spring就像是整个项目中的粘合剂,负责装配bean并管理其生命周期,实现控制反转(IoC)的功能。SpringMVC负责拦截用户请求,通过DispatcherServlet将请求匹配到相应的Controller并执行。而MyBatis则是对JDBC的封装,让数据库底层操作变得透明,通过配置文件关联到各实体类的Mapper文件,实现了SQL语句映射。
2.2 mysql
MySQL是一款Relational Database Management System,直译过来的意思就是关系型数据库管理系统,MySQL有着它独特的特点,这些特点使他成为目前最流行的RDBMS之一,MySQL想比与其他数据库如ORACLE、DB2等,它属于一款体积小、速度快的数据库,重点是它符合本次毕业设计的真实租赁环境,拥有成本低,开发源码这些特点,这也是选择它的主要原因。
3、开发环境
- JAVA版本:JDK1.8,其它版本理论上可以
- IDE类型:IDEA、Eclipse、Myeclipse都可以。推荐IDEA与Eclipse
- tomcat版本:Tomcat 7.x、8.x、9.x、10.x版本均可
- 数据库版本:MySql 5.x
- 是否为maven:否
- 硬件环境:Windows 或者 Mac OS
4、功能截图+视频演示+文档目录
4.1 登录
管理员和宿管可以通过此界面登录系统,后台将自动识别用户类型
4.2 管理员模块
- 班级管理:管理员可以通过班级编号、班级名字、辅导员名字筛选班级信息,并能增加、删除和修改班级信息,还能够导出为excel文件
- 宿舍列表管理:管理员可以通过宿舍编号、宿舍楼名字、管理员姓名筛选宿舍信息,并能增加、删除和修改宿舍信息
- 访客管理:管理员可以通过姓名和电话筛选访客记录,并能够添加访客记录
- 用户管理:管理员可以通过用户名和用户级别筛选用户,并能增加、删除和修改用户
- 学生管理:管理员可以通过学号等筛选学生,并能增加、删除和修改学生信息
4.3 宿管模块
- 卫生管理:卫生管理分为宿舍卫生管理和学生卫生管理:
- 宿舍卫生:宿管可以通过宿舍编号和宿舍楼筛查宿舍信息,并能添加、删除、修改宿舍的卫生记录
- 学生卫生:宿管可以通过学号、姓名和寝室编号筛查学生,并能增删改查学生卫生记录
- 访客管理:宿管可以通过姓名和电话筛选访客记录,并能够添加访客记录
5 、核心代码实现
5.1 配置代码
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">
<!-- 读取db.properties -->
<context:property-placeholder location="classpath:db.properties"/>
<!-- 配置数据源 -->
<bean id="dataSource"
class="org.apache.commons.dbcp2.BasicDataSource">
<!--数据库驱动 -->
<property name="driverClassName" value="${jdbc.driver}" />
<!--连接数据库的url -->
<property name="url" value="${jdbc.url}" />
<!--连接数据库的用户名 -->
<property name="username" value="${jdbc.username}" />
<!--连接数据库的密码 -->
<property name="password" value="${jdbc.password}" />
<!--最大连接数 -->
<property name="maxTotal" value="${jdbc.maxTotal}" />
<!--最大空闲连接 -->
<property name="maxIdle" value="${jdbc.maxIdle}" />
<!--初始化连接数 -->
<property name="initialSize" value="${jdbc.initialSize}" />
</bean>
<!-- 事务管理器,依赖于数据源 -->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
<!-- 开启事务注解 -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- 配置MyBatis工厂SqlSessionFactory -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--注入数据源 -->
<property name="dataSource" ref="dataSource" />
<!--指定核MyBatis心配置文件位置 -->
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
<!-- 配置mapper扫描器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.itheima.dao"/>
</bean>
<!-- 扫描Service -->
<context:component-scan base-package="com.itheima.service" />
</beans>
5.2 其它核心代码
package com.itheima.controller;
import com.itheima.po.Admin;
import com.itheima.po.PageInfo;
import com.itheima.service.AdminService;
import com.itheima.util.MD5Util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.List;
/**
* 用户控制器类
*/
@Controller
public class AdminController {
// 依赖注入
@Autowired
private AdminService adminService;
/**
* 用户登录
*/
/**
* 将提交数据(username,password)写入Admin对象
*/
@RequestMapping(value = "/login")
public String login( Admin admin, Model model, HttpSession session, HttpServletRequest request) {
// 通过账号和密码查询用户
// admin.setA_password(MD5Util.MD5EncodeUtf8(admin.getA_password()));
admin.setA_password(admin.getA_password());
Admin ad = adminService.findAdmin(admin);
if(ad!=null){
session.setAttribute("ad", ad);
return "homepage";
}
model.addAttribute("msg", "用户名或密码错误,请重新登录!");
return "login";
}
/**
* 退出登录
*/
@RequestMapping(value = "/loginOut")
public String loginOut(Admin admin, Model model, HttpSession session) {
session.invalidate();
return "login";
}
/**
* 分页查询
*/
@RequestMapping(value = "/findAdmin")
public String findAdmin(String a_username, String a_describe,Integer pageIndex,
Integer a_id ,Integer pageSize, Model model) {
PageInfo<Admin> ai = adminService.findPageInfo(a_username,a_describe,
a_id,pageIndex,pageSize);
model.addAttribute("ai",ai);
return "admin_list";
}
/**
* 导出Excel
*/
@RequestMapping(value = "/exportadminlist" , method = RequestMethod.POST)
@ResponseBody
public List<Admin> exportAdmin(){
List<Admin> admin = adminService.getAll();
return admin;
}
/**
* 添加管理员信息
*/
@RequestMapping(value = "/addAdmin" ,method = RequestMethod.POST)
@ResponseBody
public String addAdmin( @RequestBody Admin admin) {
admin.setA_password(MD5Util.MD5EncodeUtf8(admin.getA_password()));
int a = adminService.addAdmin(admin);
return "admin_list";
}
/**
* 删除管理员信息;将请求体a_id写入参数a_id
*/
@RequestMapping( "/deleteAdmin")
@ResponseBody
public String deleteAdmin(Integer a_id) {
int a = adminService.deleteAdmin(a_id);
return "admin_list";
}
/**
* 修改管理员信息
*/
/**
* 将提交数据(a_id,a_username...)写入Admin对象
*/
@RequestMapping( value = "/updateAdmin", method = RequestMethod.POST)
public String updateAdmin(Admin admin) {
admin.setA_password(MD5Util.MD5EncodeUtf8(admin.getA_password()));
int a = adminService.updateAdmin(admin);
return "redirect:/findAdmin";
}
/**
* 根据管理员Id搜索;将请求数据a_id写入参数a_id
*/
@RequestMapping( "/findAdminById")
public String findAdminById( Integer a_id,HttpSession session) {
Admin a= adminService.findAdminById(a_id);
session.setAttribute("a",a);
return "admin_edit";
}
}
6 、功能视频演示
学生宿舍管理系统