学生宿舍管理系统。
Javaweb宿舍管理系统,web项目!
分三个角色登录!分学生登录,管理员登录,宿管登录,不同用户功能不同!!
二、技术介绍
技术应用:
JSP、Servlet、mysql、tomcat。
开发环境:
1.IDEA/eclipse
2.mysql
3.JDK
4.tomcat
三、功能介绍
1.首页功能:
登录。分学生登录,宿管登录,管理员登录,不同用户功能不同!
2.学生用户功能:
查看缺勤记录,修改密码,查看主页。
3.管理员用户功能:
学生信息管理,宿舍楼管理,查看学生缺勤记录,修改密码。
4.宿管用户功能:
查看学生信息,增加学生缺勤记录,修改密码。
文章目录
以下是一个基于 Java Web 的学生宿舍管理系统的简单实现。这个项目使用了 Spring Boot 作为后端框架,Thymeleaf 作为前端模板引擎,MySQL 作为数据库。
1. 系统功能
- 学生信息管理(增删改查)。
- 宿舍信息管理(增删改查)。
- 分配宿舍功能。
- 查询宿舍分配情况。
2. 技术栈
- 后端: Spring Boot, Spring MVC, Spring Data JPA
- 前端: HTML, CSS, JavaScript (Bootstrap 框架)
- 数据库: MySQL
- 构建工具: Maven
3. 数据库设计
(1) 数据表结构
CREATE DATABASE dormitory_management;
USE dormitory_management;
-- 学生表
CREATE TABLE student (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
gender VARCHAR(10),
phone VARCHAR(20),
dormitory_id INT
);
-- 宿舍表
CREATE TABLE dormitory (
id INT AUTO_INCREMENT PRIMARY KEY,
room_number VARCHAR(20) NOT NULL,
capacity INT NOT NULL,
current_occupancy INT DEFAULT 0
);
4. 项目结构
dormitory-management/
├── src/
│ ├── main/
│ │ ├── java/com/example/dormitory/
│ │ │ ├── controller/
│ │ │ │ ├── StudentController.java
│ │ │ │ ├── DormitoryController.java
│ │ │ ├── model/
│ │ │ │ ├── Student.java
│ │ │ │ ├── Dormitory.java
│ │ │ ├── repository/
│ │ │ │ ├── StudentRepository.java
│ │ │ │ ├── DormitoryRepository.java
│ │ │ ├── DormitoryManagementApplication.java
│ │ ├── resources/
│ │ │ ├── templates/
│ │ │ │ ├── student.html
│ │ │ │ ├── dormitory.html
│ │ │ │ ├── index.html
│ │ │ ├── application.properties
│ │ │ ├── static/
│ │ │ │ ├── css/
│ │ │ │ │ ├── style.css
│ │ │ │ ├── js/
│ │ │ │ │ ├── script.js
5. 核心代码
(1) application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/dormitory_management?useSSL=false&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=your_password
spring.jpa.hibernate.ddl-auto=update
spring.thymeleaf.cache=false
(2) 实体类
Student.java
package com.example.dormitory.model;
import jakarta.persistence.*;
@Entity
public class Student {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String name;
private String gender;
private String phone;
@ManyToOne
@JoinColumn(name = "dormitory_id")
private Dormitory dormitory;
// Getters and Setters
}
Dormitory.java
package com.example.dormitory.model;
import jakarta.persistence.*;
import java.util.List;
@Entity
public class Dormitory {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
private String roomNumber;
private Integer capacity;
private Integer currentOccupancy;
@OneToMany(mappedBy = "dormitory")
private List<Student> students;
// Getters and Setters
}
(3) 控制器
StudentController.java
package com.example.dormitory.controller;
import com.example.dormitory.model.Student;
import com.example.dormitory.repository.StudentRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/students")
public class StudentController {
@Autowired
private StudentRepository studentRepository;
@GetMapping
public String listStudents(Model model) {
model.addAttribute("students", studentRepository.findAll());
return "student";
}
@GetMapping("/add")
public String addStudentForm(Model model) {
model.addAttribute("student", new Student());
return "add-student";
}
@PostMapping("/save")
public String saveStudent(@ModelAttribute Student student) {
studentRepository.save(student);
return "redirect:/students";
}
@GetMapping("/delete/{id}")
public String deleteStudent(@PathVariable Integer id) {
studentRepository.deleteById(id);
return "redirect:/students";
}
}
DormitoryController.java
package com.example.dormitory.controller;
import com.example.dormitory.model.Dormitory;
import com.example.dormitory.repository.DormitoryRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
@Controller
@RequestMapping("/dormitories")
public class DormitoryController {
@Autowired
private DormitoryRepository dormitoryRepository;
@GetMapping
public String listDormitories(Model model) {
model.addAttribute("dormitories", dormitoryRepository.findAll());
return "dormitory";
}
@GetMapping("/add")
public String addDormitoryForm(Model model) {
model.addAttribute("dormitory", new Dormitory());
return "add-dormitory";
}
@PostMapping("/save")
public String saveDormitory(@ModelAttribute Dormitory dormitory) {
dormitoryRepository.save(dormitory);
return "redirect:/dormitories";
}
@GetMapping("/delete/{id}")
public String deleteDormitory(@PathVariable Integer id) {
dormitoryRepository.deleteById(id);
return "redirect:/dormitories";
}
}
(4) 前端页面
student.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>学生管理</title>
<link rel="stylesheet" th:href="@{/css/style.css}">
</head>
<body>
<h1>学生列表</h1>
<a href="/students/add">添加学生</a>
<table border="1">
<tr>
<th>ID</th>
<th>姓名</th>
<th>性别</th>
<th>电话</th>
<th>宿舍号</th>
<th>操作</th>
</tr>
<tr th:each="student : ${students}">
<td th:text="${student.id}"></td>
<td th:text="${student.name}"></td>
<td th:text="${student.gender}"></td>
<td th:text="${student.phone}"></td>
<td th:text="${student.dormitory.roomNumber}"></td>
<td>
<a th:href="@{/students/delete/{id}(id=${student.id})}">删除</a>
</td>
</tr>
</table>
</body>
</html>
dormitory.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>宿舍管理</title>
<link rel="stylesheet" th:href="@{/css/style.css}">
</head>
<body>
<h1>宿舍列表</h1>
<a href="/dormitories/add">添加宿舍</a>
<table border="1">
<tr>
<th>ID</th>
<th>房间号</th>
<th>容量</th>
<th>当前人数</th>
<th>操作</th>
</tr>
<tr th:each="dormitory : ${dormitories}">
<td th:text="${dormitory.id}"></td>
<td th:text="${dormitory.roomNumber}"></td>
<td th:text="${dormitory.capacity}"></td>
<td th:text="${dormitory.currentOccupancy}"></td>
<td>
<a th:href="@{/dormitories/delete/{id}(id=${dormitory.id})}">删除</a>
</td>
</tr>
</table>
</body>
</html>
6. 运行步骤
- 创建 MySQL 数据库并导入 SQL 脚本。
- 配置
application.properties
中的数据库连接信息。 - 使用 Maven 构建项目:
mvn clean install
。 - 启动 Spring Boot 应用:
mvn spring-boot:run
。 - 打开浏览器访问
http://localhost:8080/students
或http://localhost:8080/dormitories
。
7. 总结
这是一个基础的学生宿舍管理系统,涵盖了学生和宿舍的基本管理功能。你可以在此基础上扩展更多功能,例如用户权限管理、宿舍分配优化等。