本为Java实验课设,为了不浪费时间,故用良好的构思,写出了这个管理系统。
项目仓库地址:已开源GitHub
项目需求
基本要求:
- 社团管理:具体完成社团的新增、修改、查询等功能;
- 人员管理:针对某一指定的社团完成其学员(学生编号、姓名、年龄、所学专业、兴趣爱好等)进行新增、修改、查询、删除等功能;
- 给定某一学员,查找其所参加的全部社团,并将相关社团信息进行显示输出;
- 必须要用面向对象设计思想编程实现
高级要求:
- 界面友好
- 实现对社团人数按大小排序的功能;
- 在新增学员过程中,实现给定一学生编号,若该学生编号在其他社团中存在,则将该学生的信息自动进行显示,若不存在,则需要录入该学生的所有详细数据信息;
项目实现
本项目采取前后端分离的思想,Swing仅仅负责前端页面的展示,数据由后端访问数据库提供。
代码结构如下:
后端实现
数据库设计
一共有四张表:
- users:用于存储用户的账户和密码
- clubs:存储所有社团信息
- club_members:存储每个成员的基本信息
- club_member_relations:存储社团和社团成员的多对多关系
架构分层
架构分层如下:
- models:负责直接和数据库打交道初步的增删改查操作。
- service:真正提供给前端界面的接口,进一步封装增删改查,对上层参数校验,或者将models层零散的数据再包装。
接口实现情况
所有接口如下:
关键设计模式:单例模式。
DAO类均为单例访问模式。
- Club相关
public static void AddClub(Club club) throws RuntimeExce