Loading repository data…
Loading repository data…
Syihang / repository
Java项目,图书管理系统,GUI采用JavaFX实现,数据库使用的是MySQL
这是一个Java图书管理系统的项目,界面布局采用JavaFX设计,数据库采用MySQL数据库。详情请参阅设计文档。
本项目旨在实现一个简单的图书管理系统,支持图书的借阅、归还、查询等功能。同时,系统还包括管理员登录、学生信息管理等模块。
| 字段 | 类型 | 是否主键 | 是否为空 | 中文描述 | 备注 |
|---|---|---|---|---|---|
| student_id | CHAR(12) | 是 | 否 | 学号 | |
| password | VARCHAR(12) | 否 | 否 | 密码 | |
| student_name | VARCHAR(12) | 否 | 否 | 姓名 | |
| gender | CHAR(2) | 否 | 否 | 性别 | |
| faculty | VARCHAR(20) | 否 | 否 | 所在学院 | |
| year | DATE | 否 | 否 | 入学年份 | |
| telephone | CHAR(11) | 否 | 否 | 联系电话 | 不重复 |
| 字段 | 类型 | 是否主键 | 是否为空 | 中文描述 | 备注 |
|---|---|---|---|---|---|
| admin_id | INT | 是 | 否 | 编号 | 自增主键 |
| account | CHAR(12) | 否 | 否 | 账号 | 不重复 |
| password | VARCHAR(12) | 否 | 否 | 密码 | |
| admin_name | VARCHAR(12) | 否 | 否 | 姓名 | |
| telephone | CHAR(11) | 否 | 否 | 联系电话 | 不重复 |
| 字段 | 类型 | 是否主键 | 是否为空 | 中文描述 | 备注 |
|---|---|---|---|---|---|
| ISBN | CHAR(10) | 是 | 否 | ISBN编号 | |
| title | VARCHAR(20) | 否 | 否 | 书名 | |
| author | VARCHAR(12) | 否 | 否 | 作者 | |
| publisher | VARCHAR(20) | 否 | 否 | 出版社 | |
| publication_date | DATE | 否 | 否 | 出版日期 | |
| total | INT | 否 | 否 | 总量 | |
| price | DECIMAL(6, 2) | 否 | 否 | 价格 | |
| type_id | INT | 否 | 否 | 类型 | 外键 |
| 字段 | 类型 | 是否主键 | 是否为空 | 中文描述 | 备注 |
|---|---|---|---|---|---|
| type_id | INT | 是 | 否 | 类别ID | 自增 |
| type | VARCHAR(10) | 否 | 否 | 类别名 |
| 字段 | 类型 | 是否主键 | 是否为空 | 中文描述 | 备注 |
|---|---|---|---|---|---|
| lose_id | INT | 是 | 否 | 记录编号 | 自增 |
| student_id | CHAR(12) | 否 | 否 | 学号 | 外键 |
| ISBN | CHAR(10) | 否 | 否 | ISBN编号 | 外键 |
| status | VARCHAR(5) | 否 | 否 | 状态 | 丢失/损坏 |
| report_time | DATE | 否 | 否 | 上报时间 | 默认填充当前时间 |
| is_compensation | BOOLEAN | 否 | 否 | 是否赔偿 | |
| remark | TEXT | 否 | 是 | 备注 |
触发器: 在lose表中插入数据时,若时间上报时间为空,则默认填充当前时间。
| 字段 | 类型 | 是否主键 | 是否为空 | 中文描述 | 备注 |
|---|---|---|---|---|---|
| borrow_id | INT | 是 | 否 | 记录编号 | 自增 |
| student_id | CHAR(12) | 否 | 否 | 学号 | 外键 |
| ISBN | CHAR(10) | 否 | 否 | ISBN编号 | 外键 |
| borrow_time | DATE | 否 | 否 | 借阅时间 | |
| return_time | DATE | 否 | 否 | 应归还时间 | |
| actual_return_time | DATE | 否 | 是 | 实际归还时间 |
触发器: 删除学生或书籍信息时,检查是否存在未归还书籍。如果借阅记录表中存在未归还书籍,该书籍信息及借阅该书籍的学生信息不得删除。
| 字段 | 类型 | 是否主键 | 是否为空 | 中文描述 | 备注 |
|---|---|---|---|---|---|
| student_id | CHAR(12) | 是 | 否 | 学号 | |
| borrow_times | INT | 否 | 否 | 总借阅次数 | 默认为0 |
| late_return_times | INT | 否 | 否 | 延迟归还次数 | 默认为0 |
| credit_value | TINYINT | 否 | 否 | 信誉积分 | 默认为100 |
| credit_rating | CHAR(5) | 否 | 否 | 信誉等级 | 默认为优秀 |
| borrow_limit | TINYINT | 否 | 否 | 借阅上限 | 默认为4 |
更新规则:
borrow_times: 从borrow表中统计该学生借书总次数。late_return_times: 从borrow表中统计该学生延迟归还次数。credit_value: 计算公式为 100 - late_return_times * 5 + borrow_times,取值范围为0-100,当数值大于100时则取值为100。credit_rating: 根据credit_value确定,分别为优秀(≥90)、良好(80-89)、一般(70-79)、及格(60-69)、不及格(<60)。borrow_limit: 根据credit_rating设置,分别为优秀4、良好3、一般2、及格1、不及格或存在逾期且未归还书籍时为0。项目大文件夹下包括lib与src两个文件,其中,lib存储项目所用到的依赖,src存储项目的实现方法以及资源文件。
其中src.mian.java中包含具体的代码,main,src.resources中包含项目所有的资源文件。
在Java文件夹下,各个文件夹的具体功能分别如下:
在resource文件夹下,各个模块功能如下所示: