基于Java+MySQL实现的宿舍管理系统
引言
宿舍管理系统是许多学校和企事业单位中必不可少的一部分,它可以帮助管理人员高效地管理宿舍资源、查找住宿信息、处理入住和退宿事务等。本文将介绍如何使用Java和MySQL实现一个简单的宿舍管理系统,并提供部分代码实例。
系统架构
我们将通过以下几个模块来实现宿舍管理系统:
- 用户管理模块:用于注册、登录、用户信息管理等。
- 宿舍信息管理模块:用于添加、删除、修改宿舍信息。
- 住宿管理模块:用于处理入住、退宿、查看住宿记录等。
开发环境
- Java JDK
- MySQL数据库
- Eclipse IDE
- Maven管理依赖
数据库设计
首先,我们需要设计数据库表。以下是宿舍管理系统需要的主要表结构:
CREATE TABLE User (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
password VARCHAR(50) NOT NULL,
user_type ENUM('admin', 'student') NOT NULL
);
CREATE TABLE Dormitory (
dormitory_id INT PRIMARY KEY AUTO_INCREMENT,
dormitory_name VARCHAR(50) NOT NULL,
total_beds INT NOT NULL,
occupied_beds INT NOT NULL
);
CREATE TABLE Accommodation (
accommodation_id INT PRIMARY KEY AUTO_INCREMENT,
user_id INT,
dormitory_id INT,
check_in_date DATE,
check_out_date DATE,
FOREIGN KEY (user_id) REFERENCES User(user_id),
FOREIGN KEY (dormitory_id) REFERENCES Dormitory(dormitory_id)
);
Java代码示例
接下来,我们将使用Java代码实现用户注册和宿舍信息管理的基本功能。
1. 数据库连接工具类
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DatabaseUtil {
private static final String URL = "jdbc:mysql://localhost:3306/dormitory_management";
private static final String USER = "root";
private static final String PASSWORD = "password";
public static Connection getConnection() {
Connection connection = null;
try {
connection = DriverManager.getConnection(URL, USER, PASSWORD);
} catch (SQLException e) {
e.printStackTrace();
}
return connection;
}
}
2. 用户管理类
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class UserManager {
public boolean register(String username, String password) {
String sql = "INSERT INTO User(username, password, user_type) VALUES (?, ?, 'student')";
try (Connection connection = DatabaseUtil.getConnection();
PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setString(1, username);
statement.setString(2, password);
return statement.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
public boolean login(String username, String password) {
String sql = "SELECT * FROM User WHERE username = ? AND password = ?";
try (Connection connection = DatabaseUtil.getConnection();
PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setString(1, username);
statement.setString(2, password);
ResultSet resultSet = statement.executeQuery();
return resultSet.next();
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}
3. 宿舍管理类
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
public class DormitoryManager {
public List<String> getAllDormitories() {
List<String> dormitories = new ArrayList<>();
String sql = "SELECT dormitory_name FROM Dormitory";
try (Connection connection = DatabaseUtil.getConnection();
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery()) {
while (resultSet.next()) {
dormitories.add(resultSet.getString("dormitory_name"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return dormitories;
}
public boolean addDormitory(String dormitoryName, int totalBeds) {
String sql = "INSERT INTO Dormitory(dormitory_name, total_beds, occupied_beds) VALUES (?, ?, 0)";
try (Connection connection = DatabaseUtil.getConnection();
PreparedStatement statement = connection.prepareStatement(sql)) {
statement.setString(1, dormitoryName);
statement.setInt(2, totalBeds);
return statement.executeUpdate() > 0;
} catch (SQLException e) {
e.printStackTrace();
}
return false;
}
}
总结
通过上述示例代码,我们实现了一个简单的宿舍管理系统核心功能。这只是一个基本框架,实际的系统可能需要更多的功能,比如权限管理、数据校验、前端展示等。结合Java和MySQL的强大功能,我们可以不断扩展和完善系统,为宿舍管理提供更高效的解决方案。希望本篇文章对您在开发宿舍管理系统的过程中有所帮助。