基于Java Swing开发的图书馆管理系统,包含用户注册/登录、图书管理、借阅管理、密码找回等功能模块,采用MySQL数据库存储数据,通过Resend邮件服务实现验证码发送功能。
- 核心语言:Java 18
- 前端界面:Swing GUI框架
- 数据库:MySQL 8.0+(支持软删除机制)
- 网络通信:Resend邮件服务API
- 数据加密:SHA-256密码加密
- 依赖管理:Maven
- 第三方库:
- Resend Java SDK(邮件发送)
- Gson(JSON解析)
- MySQL JDBC驱动(数据库连接)
- 注册/登录(含邮箱验证码)
- 密码找回(邮件验证)
- 密码更改(邮件验证)
- 账户注销(邮件验证)
- 借阅记录查询(仅当前用户)
- 图书借阅/归还
- 用户管理(权限分配/删除)
- 图书库存管理(增删改)
- 已删除图书回收站
- 实时数据可视化
- 安装 JDK 18
- 安装 MySQL 8.0+
- 搭建个人域名邮箱路由服务
- 注册 Resend开发者账户 获取API密钥
- 配置数据库连接(如有需要)
- 创建数据库:
CREATE DATABASE db_library_app;
- 执行SQL脚本创建表结构(详见
src/main/java/sql
) - 配置邮件API密钥:(
src/main/java/top/playereg/ApiKeys.json
)
{
"SendEmailApiKey": "your_resend_api_key"
}
- 配置数据库连接(如有需要):
// 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密码
字段名 | 类型 | 描述 |
---|---|---|
id | INT | 主键 |
username | VARCHAR(255) | 用户名 |
password | VARCHAR(64) | SHA-256加密密码 |
VARCHAR(255) | 邮箱 | |
is_root | TINYINT | 权限等级(0/1) |
is_del | TINYINT | 软删除标记(0/1) |
bookBorrowID | BIGINT | 当前借阅书籍ID |
bookBorrowTime | BIGINT | 借阅时间戳 |
字段名 | 类型 | 描述 |
---|---|---|
id | INT | 主键 |
bookName | VARCHAR(255) | 书名 |
bookNumber | INT | 库存数量 |
is_del | TINYINT | 软删除标记(0/1) |
邮件服务采用Resend API v1标准,请求示例:
import com.resend.*;
public class Main {
public static void main(String[] args) {
Resend resend = new Resend("re_xxxxxxxxx");
SendEmailRequest sendEmailRequest = SendEmailRequest.builder()
.from("Acme <onboarding@resend.dev>")
.to("delivered@resend.dev")
.subject("hello world")
.html("<p>it works!</p>")
.build();
SendEmailResponse data = resend.emails().send(sendEmailRequest);
}
}
- 注册新账户
- 邮箱验证激活
- 普通用户登录后可进行:
- 图书查询
- 借阅操作
- 查看借阅记录(仅当前用户)
- 管理员登录后可进行:
- 用户管理
- 图书库存管理
- 查看删除记录
- 检查pom.xml依赖是否完整
- 执行
mvn dependency:resolve
- 检查ApiKeys.json配置
- 确认Resend账户配额状态
- 检查网络连接(参考PingNetTool.java)
- 验证MySQL服务是否启动
- 检查DbUtils.java连接参数
- 确认数据库表结构是否完整
- 密码存储:SHA-256哈希加密(HashTool.java)
- 邮箱验证:5分钟时效验证码(SendEmailTool.java)
- 数据隔离:软删除机制(is_del字段)
- 实现基础CRUD功能
- 完成用户/管理员双角色系统
- 集成邮件验证系统
本项目遵循GNU General Public License v2.0,允许在遵守协议的前提下自由使用和修改。
- 邮箱1:playereg@vip.playereg.top
- 邮箱2:playereg@email.playereg.top
- GitHub主页:@Ender-g
- B站主页:@PlayerEG