https://github.com/ender-g/trinitylibrarysys
大一下册Java期末项目,基于Java Swing开发
https://github.com/ender-g/trinitylibrarysys
cloudflare java-8 jdbc mysql resend-email-api swing-gui
Last synced: 8 months ago
JSON representation
大一下册Java期末项目,基于Java Swing开发
- Host: GitHub
- URL: https://github.com/ender-g/trinitylibrarysys
- Owner: Ender-g
- License: gpl-2.0
- Created: 2025-05-19T06:34:18.000Z (9 months ago)
- Default Branch: master
- Last Pushed: 2025-06-18T12:41:36.000Z (8 months ago)
- Last Synced: 2025-06-18T12:50:56.349Z (8 months ago)
- Topics: cloudflare, java-8, jdbc, mysql, resend-email-api, swing-gui
- Language: Java
- Homepage:
- Size: 16.5 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 崔尼蒂图书馆管理系统
## 一、项目简介
> 基于Java Swing开发的图书馆管理系统,包含用户注册/登录、图书管理、借阅管理、密码找回等功能模块,采用MySQL数据库存储数据,通过Resend邮件服务实现验证码发送功能。
## 二、技术栈
- **核心语言**:Java 18
- **前端界面**:Swing GUI框架
- **数据库**:MySQL 8.0+(支持软删除机制)
- **网络通信**:Resend邮件服务API
- **数据加密**:SHA-256密码加密
- **依赖管理**:Maven
- **第三方库**:
- [Resend Java SDK](https://www.resend.com/docs)(邮件发送)
- Gson(JSON解析)
- MySQL JDBC驱动(数据库连接)
## 三、功能模块
### 用户端
- 注册/登录(含邮箱验证码)
- 密码找回(邮件验证)
- 密码更改(邮件验证)
- 账户注销(邮件验证)
- 借阅记录查询(仅当前用户)
- 图书借阅/归还
### 管理员端
- 用户管理(权限分配/删除)
- 图书库存管理(增删改)
- 已删除图书回收站
- 实时数据可视化
## 四、克隆指南
### 环境准备
1. 安装 [JDK 18](https://www.oracle.com/java/technologies/javase/jdk18-archive-downloads.html)
2. 安装 [MySQL 8.0+](https://dev.mysql.com/downloads/mysql/)
3. 搭建个人域名邮箱路由服务
4. 注册 [Resend开发者账户](https://resend.com/) 获取API密钥
5. 配置数据库连接(如有需要)
### 初始化流程
1. 创建数据库:```CREATE DATABASE db_library_app;```
2. 执行SQL脚本创建表结构(详见`src/main/java/sql`)
3. 配置邮件API密钥:(`src/main/java/top/playereg/ApiKeys.json`)
```json
{
"SendEmailApiKey": "your_resend_api_key"
}
```
4. 配置数据库连接(如有需要):
```java
// DbUtils.java
String url = "jdbc:mysql://127.0.0.1:3306/db_library_app?useSSL=false&serverTimezone=Asia/Shanghai";
String username = "root"; // 修改为你的MySQL用户名
String password = "123456"; // 修改为你的MySQL密码
```
## 五、开发者指南
### 数据库设计
#### 用户表(tb_user)
| 字段名 | 类型 | 描述 |
| -------------- | ------------ | ----------- |
| id | INT | 主键 |
| username | VARCHAR(255) | 用户名 |
| password | VARCHAR(64) | SHA-256加密密码 |
| email | VARCHAR(255) | 邮箱 |
| is_root | TINYINT | 权限等级(0/1) |
| is_del | TINYINT | 软删除标记(0/1) |
| bookBorrowID | BIGINT | 当前借阅书籍ID |
| bookBorrowTime | BIGINT | 借阅时间戳 |
#### 图书表(tb_books)
| 字段名 | 类型 | 描述 |
| ---------- | ------------ | ---------- |
| id | INT | 主键 |
| bookName | VARCHAR(255) | 书名 |
| bookNumber | INT | 库存数量 |
| is_del | TINYINT | 软删除标记(0/1) |
### 接口规范
邮件服务采用[Resend API v1](https://resend.com/docs/api-reference/emails/send-email)标准,请求示例:
```java
import com.resend.*;
public class Main {
public static void main(String[] args) {
Resend resend = new Resend("re_xxxxxxxxx");
SendEmailRequest sendEmailRequest = SendEmailRequest.builder()
.from("Acme ")
.to("delivered@resend.dev")
.subject("hello world")
.html("
it works!
")
.build();
SendEmailResponse data = resend.emails().send(sendEmailRequest);
}
}
```
## 六、使用教程
1. 注册新账户
2. 邮箱验证激活
3. 普通用户登录后可进行:
- 图书查询
- 借阅操作
- 查看借阅记录(仅当前用户)
4. 管理员登录后可进行:
- 用户管理
- 图书库存管理
- 查看删除记录
## 七、常见问题
> ### Q: 启动报错`ClassNotFoundException`
>
> ### A:
>
> 1. 检查[pom.xml](file://D:\IdeaProjects\LibrarySys\pom.xml)依赖是否完整
> 2. 执行`mvn dependency:resolve`
> ### Q: 邮件验证码无法发送
>
> ### A:
>
> 1. 检查[ApiKeys.json](file://D:\IdeaProjects\LibrarySys\src\main\java\top\playereg\ApiKeys.json)配置
> 2. 确认Resend账户配额状态
> 3. 检查网络连接(参考[PingNetTool.java](file://D:\IdeaProjects\LibrarySys\src\main\java\top\playereg\sys\utils\PingNetTool.java))
> ### Q: 登录提示"数据库操作失败"
>
> ### A:
>
> 1. 验证MySQL服务是否启动
> 2. 检查[DbUtils.java](file://D:\IdeaProjects\LibrarySys\src\main\java\top\playereg\sys\utils\DbUtils.java)连接参数
> 3. 确认数据库表结构是否完整
## 八、安全设计
- 密码存储:SHA-256哈希加密([HashTool.java](file://D:\IdeaProjects\LibrarySys\src\main\java\top\playereg\sys\utils\HashTool.java))
- 邮箱验证:5分钟时效验证码([SendEmailTool.java](file://D:\IdeaProjects\LibrarySys\src\main\java\top\playereg\sys\utils\SendEmailTool.java))
- 数据隔离:软删除机制(is_del字段)
## 九、版本历史
### v1.0.0 (2025-05-31)
- 实现基础CRUD功能
- 完成用户/管理员双角色系统
- 集成邮件验证系统
## 十、许可证
本项目遵循[GNU General Public License v2.0](LICENSE),允许在遵守协议的前提下自由使用和修改。
---
## 🌐 关于我 🌐
### ♠️ 邮箱1:
### ♣️ 邮箱2:
### ♥️ GitHub主页:[@Ender-g](https://github.com/ender-g)
### ♦️ B站主页:[@PlayerEG](https://space.bilibili.com/520500365)