基于Java+MySQL实现的宿舍管理系统

引言

宿舍管理系统是许多学校和企事业单位中必不可少的一部分,它可以帮助管理人员高效地管理宿舍资源、查找住宿信息、处理入住和退宿事务等。本文将介绍如何使用Java和MySQL实现一个简单的宿舍管理系统,并提供部分代码实例。

系统架构

我们将通过以下几个模块来实现宿舍管理系统:

  1. 用户管理模块:用于注册、登录、用户信息管理等。
  2. 宿舍信息管理模块:用于添加、删除、修改宿舍信息。
  3. 住宿管理模块:用于处理入住、退宿、查看住宿记录等。

开发环境

  • 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的强大功能,我们可以不断扩展和完善系统,为宿舍管理提供更高效的解决方案。希望本篇文章对您在开发宿舍管理系统的过程中有所帮助。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部