# 智慧图书管理系统JavaSwing版本 **Repository Path**: Yu_dean/ZhiHui-Library-Management-System-JavaSwing-Version ## Basic Information - **Project Name**: 智慧图书管理系统JavaSwing版本 - **Description**: 这里是西工大软件学院4名本科生的软件工程实验大作业,项目名称为智慧图书管理系统的Java Swing版本,由胡鑫宇、张杨涵宇、赵舸呈、余燚共同开发 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-19 - **Last Updated**: 2025-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 📚 智慧图书馆管理系统(Java Swing版本) ## 项目简介 智慧图书馆管理系统是一个基于 **Java Swing** 和 **SQLite** 的桌面应用程序,专为高校图书馆设计的综合数字化管理平台。系统采用经典分层架构,实现了图书管理、读者服务、借阅流程、预约排队、统计分析等完整功能,通过现代化的界面设计和高效的业务逻辑,全面提升图书馆的工作效率和服务质量。 ## ✨ 核心特性 ### 🔐 用户权限管理 - **三级权限体系**:读者、管理员、超级管理员 - **账号生命周期**:注册、审核、激活、冻结、解冻 - **安全机制**:登录失败锁定、密码找回、身份验证 - **个人中心**:信息管理、借阅统计、消息通知 ### 📖 图书管理 - **完整CRUD**:图书录入、编辑、物理删除、批量操作 - **智能搜索**:按书名、作者、ISBN、分类多条件搜索 - **库存管理**:实时库存、预警阈值、库存操作日志 - **分类体系**:主分类、子分类、位置管理 - **数据验证**:ISBN格式校验、出版日期选择、必填项验证 ### 📋 借阅服务 - **灵活借阅**:支持自定义借阅天数(1-30天)、批量借阅 - **智能归还**:自动逾期计算、罚金结算、库存回补 - **续借功能**:在线续借、续借限制检查 - **预约系统**:预约排队、优先级管理、自动通知 - **限额控制**:读者/管理员不同借阅限额、动态可配置 ### 📊 数据分析 - **热门图书 TOP 10**:支持时间范围筛选(7天/30天/3个月/全部) - **借阅趋势分析**:按天/周/月统计借阅人数、高峰时段提示 - **用户借阅排行**:TOP 10 活跃读者、金银铜色差异化展示 - **逾期统计详情**:每个逾期用户的详细信息、罚金明细、最大逾期天数 - **报表导出**:所有统计数据支持CSV格式导出 ### 🔔 消息通知 - **智能推送**:图书入库通知、预约到期提醒、逾期警告 - **未读标识**:红色显眼标记、数量角标提示 - **分类管理**:系统通知、预约通知、逾期提醒 - **批量操作**:一键已读、删除已读消息 ### ⚙️ 系统管理(超级管理员) - **参数配置**:借阅天数、罚金费率、借阅限额、预警阈值 - **用户限额**:批量更新读者/管理员借阅限额 - **数据备份**:手动备份、备份历史管理、一键恢复 - **操作日志**:完整审计追踪、按时间/操作类型筛选 - **数据清理**:清除测试数据、保留管理员账号 ## 🛠️ 技术架构 ### 技术栈 - **编程语言**:Java 8+ - **UI框架**:Java Swing - **数据库**:SQLite 3.x(嵌入式) - **构建工具**:Maven 3.x - **依赖管理**:Apache Commons Lang3 ### 项目结构 ``` src/main/java/org/library/ ├── dao/ # 数据访问层 │ ├── DatabaseHelper.java # 数据库连接管理 │ ├── UserDAO.java # 用户数据访问 │ ├── BookDAO.java # 图书数据访问 │ ├── BorrowDAO.java # 借阅记录访问 │ ├── ReservationDAO.java # 预约记录访问 │ ├── NotificationDAO.java # 消息通知访问 │ └── SystemLogDAO.java # 系统日志访问 ├── model/ # 实体类 │ ├── User.java # 用户实体 │ ├── Book.java # 图书实体 │ ├── BorrowRecord.java # 借阅记录实体 │ ├── Reservation.java # 预约记录实体 │ └── Notification.java # 消息通知实体 ├── service/ # 业务逻辑层 │ ├── UserService.java # 用户业务逻辑 │ ├── BookService.java # 图书业务逻辑 │ ├── BorrowService.java # 借阅业务逻辑 │ ├── ReservationService.java # 预约业务逻辑 │ ├── StatisticsService.java # 统计分析逻辑 │ └── StockAlertService.java # 库存预警逻辑 ├── ui/ # 用户界面层 │ ├── admin/ # 管理员界面 │ │ ├── AdminPanel.java # 管理员主面板 │ │ ├── BookManagePanel.java # 图书管理面板 │ │ ├── BorrowManagePanel.java # 借阅管理面板 │ │ ├── UserManagePanel.java # 用户管理面板 │ │ └── StatisticsPanel.java # 数据分析面板 │ ├── reader/ # 读者界面 │ │ ├── BookSearchPanel.java # 图书检索面板 │ │ ├── BorrowHistoryPanel.java # 借阅历史面板 │ │ ├── MyReservationPanel.java # 我的预约面板 │ │ ├── NotificationPanel.java # 消息通知面板 │ │ └── UserProfilePanel.java # 个人信息面板 │ ├── superadmin/ # 超级管理员界面 │ │ ├── SystemConfigPanel.java # 系统配置面板 │ │ ├── UserLimitManagePanel.java # 限额管理面板 │ │ ├── BackupManagePanel.java # 备份管理面板 │ │ └── LogViewerPanel.java # 日志查看面板 │ ├── LoginFrame.java # 登录窗口 │ ├── MainFrame.java # 主窗口框架 │ └── PasswordResetDialog.java # 密码找回对话框 ├── util/ # 工具类 │ ├── DateUtils.java # 日期工具 │ ├── StringUtils.java # 字符串工具 │ └── ISBNGenerator.java # ISBN生成器 └── Main.java # 程序入口 ``` ## 🚀 快速开始 ### 环境要求 - **Java**:JDK 8 或更高版本 - **Maven**:3.6+ (可选,用于构建) - **操作系统**:Windows 10/11、macOS 12+、Linux ### 安装运行 #### 方式一:使用 Maven(推荐) ```bash # 1. 克隆项目 git clone https://gitee.com/Yu_dean/ZhiHui-Library-Management-System-JavaSwing-Version.git cd ZhiHui-Library-Management-System-JavaSwing-Version # 2. 编译项目 mvn clean compile # 3. 运行程序 mvn exec:java -Dexec.mainClass="org.library.Main" ``` #### 方式二:使用 IDE(IntelliJ IDEA / Eclipse) 1. 使用 IDE 打开项目文件夹 2. Maven 会自动下载依赖 3. 找到 `src/main/java/org/library/Main.java` 4. 右键选择 "Run 'Main.main()'" ### 默认账号 系统提供以下测试账号: | 角色 | 用户名 | 密码 | 说明 | |------|----------|------|------| | 超级管理员 | admin | admin123 | 拥有所有权限 | | 管理员 | manager | 123456 | 图书和借阅管理 | | 读者 | Hyacinth | 123456 | 普通读者账号 | ## 📸 系统界面 ### 登录界面 - 用户名/密码登录 - 支持密码找回功能 - 登录失败锁定机制 ### 读者端界面 - **图书检索**:多条件搜索、图书详情展示 - **借阅历史**:查看借阅记录、逾期提醒 - **我的预约**:预约状态跟踪、取消预约 - **消息通知**:系统消息、预约通知、逾期提醒 - **个人中心**:信息管理、密码修改、借阅统计 ### 管理员界面 - **图书管理**:图书CRUD、批量操作、库存管理 - **用户管理**:用户审核、信息编辑、账号冻结/解冻 - **借阅管理**:借阅归还、逾期处理、预约管理 - **数据分析**:热门图书、借阅趋势、用户排行、逾期统计 ### 超级管理员界面 - **系统配置**:借阅天数、罚金费率、预警阈值 - **用户限额管理**:批量设置借阅限额 - **数据备份**:备份/恢复数据库 - **操作日志**:系统审计追踪 - **数据清理**:清除测试数据 ## 🔧 配置说明 ### 系统参数(超级管理员可配置) | 参数名称 | 默认值 | 说明 | |---------|--------|------| | 借阅天数 | 30天 | 默认借阅期限 | | 罚金费率 | 0.5元/天 | 逾期罚金标准 | | 读者借阅限额 | 5本 | 普通读者可借数量 | | 管理员借阅限额 | 8本 | 管理员可借数量 | | 库存预警阈值 | 5本 | 低于此数量触发预警 | ### 数据库配置 系统使用嵌入式 SQLite 数据库,无需额外配置: - 数据库文件:`library.db`(自动创建在项目根目录) - 初始化脚本:`src/main/resources/database.sql` - 迁移脚本:自动执行,无需手动干预 - 编码支持:UTF-8,完美支持中文 ## 📝 开发指南 ### 代码规范 - **包结构**:按职责分层(dao/model/service/ui/util) - **命名规范**:驼峰命名、见名知义 - **注释规范**:类级JavaDoc、关键方法注释 - **异常处理**:统一异常捕获和友好提示 ### 添加新功能 1. **数据层**:在 `dao` 包中添加数据访问类 2. **实体类**:在 `model` 包中定义实体 3. **业务层**:在 `service` 包中实现业务逻辑 4. **界面层**:在 `ui` 包对应角色文件夹中添加面板 ### 数据库变更 如需修改数据库结构: 1. 编辑 `src/main/resources/database.sql` 2. 在 `DatabaseHelper.performDatabaseMigration()` 中添加迁移逻辑 3. 确保向后兼容,不破坏现有数据 ## 🐛 常见问题 ### Q: 运行时提示找不到数据库文件? A: 首次运行会自动创建 `library.db`,确保程序有写入权限。 ### Q: Maven 编译失败? A: 检查 JDK 版本(需要 8+),运行 `mvn clean install -U` 强制更新依赖。 ### Q: 界面显示乱码? A: 确保系统字体支持中文,或在 IDE 中设置文件编码为 UTF-8。 ### Q: 数据库中文乱码? A: 已修复!删除旧的 `library.db` 文件,重新运行程序即可。新版本已支持 UTF-8 编码。 ### Q: 登录失败被锁定怎么办? A: 等待 10 分钟后自动解锁,或联系管理员重置账号。 ### Q: 如何重置数据库? A: 删除 `library.db` 文件,重新运行程序即可自动初始化。 ## 📄 开源协议 本项目采用 [MIT License](LICENSE) 开源协议。 ## 👥 作者 - 项目作者:余燚 - 联系方式:yu_yi@mail.nwpu.edu.cn ## 🙏 致谢 感谢以下开源项目: - [SQLite](https://www.sqlite.org/) - 轻量级嵌入式数据库 - [Apache Commons Lang](https://commons.apache.org/proper/commons-lang/) - Java工具类库 - [Maven](https://maven.apache.org/) - 项目管理工具 ## 🤝 特别鸣谢 感谢以下贡献者: - 胡鑫宇 - 张杨涵宇 - 赵舸呈 --- ⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!