Java JDBC 学生宿舍管理系统开发:三层架构实战

本教程将详细介绍使用 Java JDBC 和三层架构模式开发学生宿舍管理系统的完整流程,涵盖数据库设计、数据访问层、业务逻辑层和界面层的设计与实现。

一、数据层

1.1 数据库表设计

学生表 (t_student)

| 字段名 | 数据类型 | 备注 | |---|---|---| | id | int | 学生 ID | | name | varchar(20) | 姓名 | | gender | varchar(2) | 性别 | | age | int | 年龄 | | dept | varchar(20) | 专业 | | grade | varchar(20) | 年级 | | dormitoryId | int | 宿舍 ID |

宿舍楼表 (t_building)

| 字段名 | 数据类型 | 备注 | |---|---|---| | id | int | 楼 ID | | name | varchar(20) | 楼名称 |

宿舍表 (t_dormitory)

| 字段名 | 数据类型 | 备注 | |---|---|---| | id | int | 宿舍 ID | | name | varchar(20) | 宿舍名称 | | buildingId | int | 楼 ID | | studentNum | int | 学生人数 | | maxCapacity | int | 最大容量 |

1.2 数据库操作类设计

学生表操作类 (StudentDao)

  • 查询学生信息:public Student getStudentById(int id)
  • 添加学生信息:public void addStudent(Student student)
  • 更新学生信息:public void updateStudent(Student student)
  • 删除学生信息:public void deleteStudent(int id)

宿舍楼表操作类 (BuildingDao)

  • 查询宿舍楼信息:public Building getBuildingById(int id)
  • 添加宿舍楼信息:public void addBuilding(Building building)
  • 更新宿舍楼信息:public void updateBuilding(Building building)
  • 删除宿舍楼信息:public void deleteBuilding(int id)

宿舍表操作类 (DormitoryDao)

  • 查询宿舍信息:public Dormitory getDormitoryById(int id)
  • 添加宿舍信息:public void addDormitory(Dormitory dormitory)
  • 更新宿舍信息:public void updateDormitory(Dormitory dormitory)
  • 删除宿舍信息:public void deleteDormitory(int id)

1.3 数据库连接类设计

数据库连接类 (DBUtil)

  • 获取数据库连接:public static Connection getConnection()
  • 关闭数据库连接:public static void closeConnection(Connection conn, PreparedStatement pstmt, ResultSet rs)

二、逻辑层

2.1 业务逻辑类设计

学生宿舍管理类 (StudentDormitoryManager)

  • 添加学生信息:public void addStudent(Student student)
  • 更新学生信息:public void updateStudent(Student student)
  • 删除学生信息:public void deleteStudent(int id)
  • 查询学生信息:public Student getStudentById(int id)
  • 查询学生所在宿舍信息:public Dormitory getDormitoryByStudentId(int id)
  • 查询宿舍楼信息:public Building getBuildingById(int id)
  • 添加宿舍楼信息:public void addBuilding(Building building)
  • 更新宿舍楼信息:public void updateBuilding(Building building)
  • 删除宿舍楼信息:public void deleteBuilding(int id)
  • 查询宿舍信息:public Dormitory getDormitoryById(int id)
  • 添加宿舍信息:public void addDormitory(Dormitory dormitory)
  • 更新宿舍信息:public void updateDormitory(Dormitory dormitory)
  • 删除宿舍信息:public void deleteDormitory(int id)

2.2 控制层

学生宿舍管理主界面 (StudentDormitoryMainFrame)

  • 学生信息管理:添加、更新、删除、查询学生信息
  • 宿舍信息管理:添加、更新、删除、查询宿舍信息、查询宿舍楼信息

三、界面层

3.1 界面设计

学生宿舍管理系统主界面

| 操作 | 学生信息管理 | 宿舍信息管理 | |---|---|---| | 添加学生信息 | | | | 更新学生信息 | | | | 删除学生信息 | | | | 查询学生信息 | | | | | 添加宿舍信息 | | | | 更新宿舍信息 | | | | 删除宿舍信息 | | | | 查询宿舍信息 | 查询宿舍楼信息 |

学生信息管理界面

| 学生编号 | 姓名 | 性别 | 年龄 | 专业 | 年级 | 宿舍编号 | |---|---|---|---|---|---|---|

宿舍信息管理界面

| 宿舍编号 | 宿舍名称 | 楼编号 | 学生人数 | 最大容量 | |---|---|---|---|---|

3.2 界面实现

学生宿舍管理系统主界面 (StudentDormitoryMainFrame)

  • 添加学生信息按钮事件:添加学生信息界面 (AddStudentFrame) 弹出
  • 更新学生信息按钮事件:更新学生信息界面 (UpdateStudentFrame) 弹出
  • 删除学生信息按钮事件:删除学生信息提示框弹出,确认后删除学生信息
  • 查询学生信息按钮事件:查询学生信息界面 (QueryStudentFrame) 弹出
  • 添加宿舍信息按钮事件:添加宿舍信息界面 (AddDormitoryFrame) 弹出
  • 更新宿舍信息按钮事件:更新宿舍信息界面 (UpdateDormitoryFrame) 弹出
  • 删除宿舍信息按钮事件:删除宿舍信息提示框弹出,确认后删除宿舍信息
  • 查询宿舍信息按钮事件:查询宿舍信息界面 (QueryDormitoryFrame) 弹出
  • 查询宿舍楼信息按钮事件:查询宿舍楼信息界面 (QueryBuildingFrame) 弹出

学生信息管理界面 (StudentInfoPanel)

  • 点击表格行事件:选中行对应的学生信息显示在文本框中
  • 保存按钮事件:将修改后的学生信息保存至数据库,保存成功后刷新表格

宿舍信息管理界面 (DormitoryInfoPanel)

  • 点击表格行事件:选中行对应的宿舍信息显示在文本框中
  • 保存按钮事件:将修改后的宿舍信息保存至数据库,保存成功后刷新表格

添加学生信息界面 (AddStudentFrame)

  • 保存按钮事件:将新添加的学生信息保存至数据库,保存成功后关闭窗口

更新学生信息界面 (UpdateStudentFrame)

  • 保存按钮事件:将修改后的学生信息保存至数据库,保存成功后关闭窗口

删除学生信息提示框 (DeleteStudentDialog)

  • 确定按钮事件:删除对应的学生信息,删除成功后关闭提示框

查询学生信息界面 (QueryStudentFrame)

  • 查询按钮事件:根据查询条件查询学生信息,并将查询结果显示在表格中

添加宿舍信息界面 (AddDormitoryFrame)

  • 保存按钮事件:将新添加的宿舍信息保存至数据库,保存成功后关闭窗口

更新宿舍信息界面 (UpdateDormitoryFrame)

  • 保存按钮事件:将修改后的宿舍信息保存至数据库,保存成功后关闭窗口

删除宿舍信息提示框 (DeleteDormitoryDialog)

  • 确定按钮事件:删除对应的宿舍信息,删除成功后关闭提示框

查询宿舍信息界面 (QueryDormitoryFrame)

  • 查询按钮事件:根据查询条件查询宿舍信息,并将查询结果显示在表格中

查询宿舍楼信息界面 (QueryBuildingFrame)

  • 查询按钮事件:根据查询条件查询宿舍楼信息,并将查询结果显示在表格中

原文地址: https://www.cveoy.top/t/topic/nS85 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录