{"id":28500916,"url":"https://github.com/ender-g/trinitylibrarysys","last_synced_at":"2025-07-04T12:30:51.647Z","repository":{"id":294169037,"uuid":"986124803","full_name":"Ender-g/TrinityLibrarySys","owner":"Ender-g","description":"大一下册Java期末项目，基于Java Swing开发","archived":false,"fork":false,"pushed_at":"2025-06-18T12:41:36.000Z","size":17316,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-18T12:50:56.349Z","etag":null,"topics":["cloudflare","java-8","jdbc","mysql","resend-email-api","swing-gui"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ender-g.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-19T06:34:18.000Z","updated_at":"2025-06-18T12:41:40.000Z","dependencies_parsed_at":"2025-06-01T05:08:15.635Z","dependency_job_id":"a327368a-0849-429f-a94b-bbca61686b89","html_url":"https://github.com/Ender-g/TrinityLibrarySys","commit_stats":null,"previous_names":["ender-g/librarysys","ender-g/trinitylibrarysys"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ender-g/TrinityLibrarySys","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ender-g%2FTrinityLibrarySys","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ender-g%2FTrinityLibrarySys/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ender-g%2FTrinityLibrarySys/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ender-g%2FTrinityLibrarySys/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ender-g","download_url":"https://codeload.github.com/Ender-g/TrinityLibrarySys/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ender-g%2FTrinityLibrarySys/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":263538951,"owners_count":23477454,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare","java-8","jdbc","mysql","resend-email-api","swing-gui"],"created_at":"2025-06-08T15:08:01.387Z","updated_at":"2025-07-04T12:30:51.641Z","avatar_url":"https://github.com/Ender-g.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 崔尼蒂图书馆管理系统\n\n## 一、项目简介\n\n\u003e 基于Java Swing开发的图书馆管理系统，包含用户注册/登录、图书管理、借阅管理、密码找回等功能模块，采用MySQL数据库存储数据，通过Resend邮件服务实现验证码发送功能。\n\n## 二、技术栈\n\n- **核心语言**：Java 18\n- **前端界面**：Swing GUI框架\n- **数据库**：MySQL 8.0+（支持软删除机制）\n- **网络通信**：Resend邮件服务API\n- **数据加密**：SHA-256密码加密\n- **依赖管理**：Maven\n- **第三方库**：\n  - [Resend Java SDK](https://www.resend.com/docs)（邮件发送）\n  - Gson（JSON解析）\n  - MySQL JDBC驱动（数据库连接）\n\n## 三、功能模块\n\n### 用户端\n\n- 注册/登录（含邮箱验证码）\n- 密码找回（邮件验证）\n- 密码更改（邮件验证）\n- 账户注销（邮件验证）\n- 借阅记录查询（仅当前用户）\n- 图书借阅/归还\n\n### 管理员端\n\n- 用户管理（权限分配/删除）\n- 图书库存管理（增删改）\n- 已删除图书回收站\n- 实时数据可视化\n\n## 四、克隆指南\n\n### 环境准备\n\n1. 安装 [JDK 18](https://www.oracle.com/java/technologies/javase/jdk18-archive-downloads.html)\n2. 安装 [MySQL 8.0+](https://dev.mysql.com/downloads/mysql/)\n3. 搭建个人域名邮箱路由服务\n4. 注册 [Resend开发者账户](https://resend.com/) 获取API密钥\n5. 配置数据库连接（如有需要）\n\n### 初始化流程\n\n1. 创建数据库：```CREATE DATABASE db_library_app;```\n2. 执行SQL脚本创建表结构（详见`src/main/java/sql`）\n3. 配置邮件API密钥：(`src/main/java/top/playereg/ApiKeys.json`)\n\n```json\n{\n  \"SendEmailApiKey\": \"your_resend_api_key\"\n}\n```\n\n4. 配置数据库连接（如有需要）：\n\n```java\n// DbUtils.java\nString url = \"jdbc:mysql://127.0.0.1:3306/db_library_app?useSSL=false\u0026serverTimezone=Asia/Shanghai\";\nString username = \"root\"; // 修改为你的MySQL用户名\nString password = \"123456\"; // 修改为你的MySQL密码\n```\n\n## 五、开发者指南\n\n### 数据库设计\n\n#### 用户表(tb_user)\n\n| 字段名            | 类型           | 描述          |\n| -------------- | ------------ | ----------- |\n| id             | INT          | 主键          |\n| username       | VARCHAR(255) | 用户名         |\n| password       | VARCHAR(64)  | SHA-256加密密码 |\n| email          | VARCHAR(255) | 邮箱          |\n| is_root        | TINYINT      | 权限等级(0/1)   |\n| is_del         | TINYINT      | 软删除标记(0/1)  |\n| bookBorrowID   | BIGINT       | 当前借阅书籍ID    |\n| bookBorrowTime | BIGINT       | 借阅时间戳       |\n\n#### 图书表(tb_books)\n\n| 字段名        | 类型           | 描述         |\n| ---------- | ------------ | ---------- |\n| id         | INT          | 主键         |\n| bookName   | VARCHAR(255) | 书名         |\n| bookNumber | INT          | 库存数量       |\n| is_del     | TINYINT      | 软删除标记(0/1) |\n\n### 接口规范\n\n邮件服务采用[Resend API v1](https://resend.com/docs/api-reference/emails/send-email)标准，请求示例：\n\n```java\nimport com.resend.*;\n\npublic class Main {\n    public static void main(String[] args) {\n        Resend resend = new Resend(\"re_xxxxxxxxx\");\n\n        SendEmailRequest sendEmailRequest = SendEmailRequest.builder()\n                .from(\"Acme \u003conboarding@resend.dev\u003e\")\n                .to(\"delivered@resend.dev\")\n                .subject(\"hello world\")\n                .html(\"\u003cp\u003eit works!\u003c/p\u003e\")\n                .build();\n\n        SendEmailResponse data = resend.emails().send(sendEmailRequest);\n    }\n}\n```\n\n## 六、使用教程\n\n1. 注册新账户\n2. 邮箱验证激活\n3. 普通用户登录后可进行：\n   - 图书查询\n   - 借阅操作\n   - 查看借阅记录（仅当前用户）\n4. 管理员登录后可进行：\n   - 用户管理\n   - 图书库存管理\n   - 查看删除记录\n\n## 七、常见问题\n\n\u003e ### Q: 启动报错`ClassNotFoundException`\n\u003e \n\u003e ### A:\n\u003e \n\u003e 1. 检查[pom.xml](file://D:\\IdeaProjects\\LibrarySys\\pom.xml)依赖是否完整\n\u003e 2. 执行`mvn dependency:resolve`\n\n\u003e ### Q: 邮件验证码无法发送\n\u003e \n\u003e ### A:\n\u003e \n\u003e 1. 检查[ApiKeys.json](file://D:\\IdeaProjects\\LibrarySys\\src\\main\\java\\top\\playereg\\ApiKeys.json)配置\n\u003e 2. 确认Resend账户配额状态\n\u003e 3. 检查网络连接（参考[PingNetTool.java](file://D:\\IdeaProjects\\LibrarySys\\src\\main\\java\\top\\playereg\\sys\\utils\\PingNetTool.java)）\n\n\u003e ### Q: 登录提示\"数据库操作失败\"\n\u003e \n\u003e ### A:\n\u003e \n\u003e 1. 验证MySQL服务是否启动\n\u003e 2. 检查[DbUtils.java](file://D:\\IdeaProjects\\LibrarySys\\src\\main\\java\\top\\playereg\\sys\\utils\\DbUtils.java)连接参数\n\u003e 3. 确认数据库表结构是否完整\n\n## 八、安全设计\n\n- 密码存储：SHA-256哈希加密（[HashTool.java](file://D:\\IdeaProjects\\LibrarySys\\src\\main\\java\\top\\playereg\\sys\\utils\\HashTool.java)）\n- 邮箱验证：5分钟时效验证码（[SendEmailTool.java](file://D:\\IdeaProjects\\LibrarySys\\src\\main\\java\\top\\playereg\\sys\\utils\\SendEmailTool.java)）\n- 数据隔离：软删除机制（is_del字段）\n\n## 九、版本历史\n\n### v1.0.0 (2025-05-31)\n\n- 实现基础CRUD功能\n- 完成用户/管理员双角色系统\n- 集成邮件验证系统\n\n## 十、许可证\n\n本项目遵循[GNU General Public License v2.0](LICENSE)，允许在遵守协议的前提下自由使用和修改。\n\n---\n\n## 🌐 关于我 🌐\n\n### ♠️ 邮箱1：\u003cplayereg@vip.playereg.top\u003e\n\n### ♣️ 邮箱2：\u003cplayereg@email.playereg.top\u003e\n\n### ♥️ GitHub主页：[@Ender-g](https://github.com/ender-g)\n\n### ♦️ B站主页：[@PlayerEG](https://space.bilibili.com/520500365)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fender-g%2Ftrinitylibrarysys","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fender-g%2Ftrinitylibrarysys","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fender-g%2Ftrinitylibrarysys/lists"}