图书馆借阅管理系统
📋 项目概述
图书馆借阅管理系统是一个基于 Spring Boot + Vue 3 的全栈 Web 应用,旨在为图书馆提供完整的图书借阅管理解决方案。系统支持管理员和读者两种角色,实现了图书管理、读者管理、借阅管理等核心功能。
项目信息
- 项目名称: 图书馆借阅管理系统 (Library Management System)
- 版本: 1.0.0
- 开发语言: Java + JavaScript
- 架构模式: 前后端分离
🛠️ 技术栈
后端技术
- 框架: Spring Boot 2.6.1
- ORM: MyBatis-Plus 3.4.3.1
- 数据库: MySQL 8.0
- 认证: JWT (java-jwt 3.18.2)
- 工具库:
- Lombok - 简化实体类开发
- Hutool 5.7.16 - Java工具类库
- Jackson 2.11.4 - JSON处理
前端技术
- 框架: Vue 3.0
- UI组件库: Element Plus 1.2.0-beta.4
- 路由: Vue Router 4.0
- 状态管理: Vuex 4.0
- HTTP客户端: Axios 0.24.0
- 图表: ECharts 5.6.0
- 日期处理: Moment.js 2.30.1
- 构建工具: Vue CLI 4.5
开发环境
- JDK: 1.8+
- Node.js: 12.0+
- Maven: 3.6+
- 数据库: MySQL 8.0
📁 项目结构
整体目录结构
java-library-management-system/ ├── SpringBoot/ # 后端项目 │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/admin/library/ │ │ │ │ ├── common/ # 通用类 │ │ │ │ │ ├── base/ # 基础类 │ │ │ │ │ └── config/ # 配置类 │ │ │ │ ├── controller/ # 控制层 │ │ │ │ ├── domain/ # 实体类 │ │ │ │ ├── mapper/ # 持久层 │ │ │ │ └── service/ # 业务层 │ │ │ └── resources/ │ │ │ └── application.properties │ │ └── test/ │ └── pom.xml ├── vue/ # 前端项目 │ ├── public/ │ ├── src/ │ │ ├── api/ # API接口 │ │ ├── assets/ # 静态资源 │ │ │ ├── icon/ # 图标 │ │ │ ├── img/ # 图片 │ │ │ └── styles/ # 样式 │ │ ├── components/ # 自定义组件 │ │ ├── layout/ # 页面布局 │ │ ├── router/ # 路由配置 │ │ ├── store/ # Vuex状态管理 │ │ ├── utils/ # 工具函数 │ │ ├── views/ # 页面视图 │ │ ├── App.vue │ │ └── main.js │ ├── package.json │ └── vue.config.js ├── sql/ # 数据库脚本 │ └── springboot-vue.sql ├── run/ # 快速启动脚本 │ └── start.cmd ├── images/ # 文档图片 └── README.md🎯 核心功能
管理员功能模块
用户管理
- 管理员注册与登录
- 修改个人信息
- 修改密码
图书管理
- 图书信息录入
- 图书信息编辑
- 图书信息删除
- 图书信息查询
- 图书列表展示
读者管理
- 读者信息录入
- 读者信息编辑
- 读者信息删除
- 读者信息查询
- 读者列表展示
借阅管理
- 借阅记录查询
- 借阅记录编辑
- 借阅状态管理
- 借阅统计分析
数据统计
- 借阅数据可视化
- 图书统计报表
- 读者统计报表
读者功能模块
用户管理
- 读者注册与登录
- 修改个人信息
- 修改密码
图书查询
- 图书信息检索
- 图书详情查看
- 图书分类浏览
借阅服务
- 在线借阅图书
- 在线归还图书
- 查看借阅记录
- 查看借阅状态
🗄️ 数据库设计
主要数据表
1. 用户表 (user)
存储管理员和读者的账户信息
- 用户ID
- 用户名
- 密码
- 角色类型
- 创建时间
- 更新时间
2. 图书表 (book)
存储图书基本信息
- 图书ID
- 书名
- 作者
- 出版社
- ISBN
- 分类
- 库存数量
- 可借数量
- 创建时间
- 更新时间
3. 读者表 (reader)
存储读者详细信息
- 读者ID
- 姓名
- 性别
- 联系方式
- 邮箱
- 地址
- 创建时间
- 更新时间
4. 借阅记录表 (lend_record)
存储图书借阅记录
- 记录ID
- 图书ID
- 读者ID
- 借阅日期
- 应还日期
- 实际归还日期
- 借阅状态
- 创建时间
- 更新时间
🚀 快速开始
环境准备
- 安装 JDK 1.8 或更高版本
- 安装 MySQL 8.0
- 安装 Node.js 12.0 或更高版本
- 安装 Maven 3.6 或更高版本
数据库配置
1. 创建数据库
CREATEDATABASEspringboot_vueCHARACTERSETutf8mb4COLLATEutf8mb4_unicode_ci;2. 导入数据
运行sql/springboot-vue.sql文件导入数据表和初始数据
3. 配置数据库连接
编辑SpringBoot/src/main/resources/application.properties:
spring.datasource.url=jdbc:mysql://localhost:3306/springboot-vue?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8 spring.datasource.username=root spring.datasource.password=your_password后端启动
方式一:使用 IDE
- 使用 IDEA 或 Eclipse 打开
SpringBoot项目 - 等待 Maven 依赖下载完成
- 运行主类启动应用
- 访问
http://localhost:9090
方式二:使用 Maven 命令
cdSpringBoot mvn cleaninstallmvn spring-boot:run前端启动
1. 安装依赖
cdvuenpminstall# 或使用 yarnyarninstall2. 启动开发服务器
npmrun dev# 或yarndev3. 构建生产版本
npmrun build# 或yarnbuild快捷启动(Windows)
双击运行run/start.cmd脚本,自动启动后端服务
🔐 系统访问
访问地址
- 前端地址: http://localhost:8080
- 后端地址: http://localhost:9090
- API文档: http://localhost:9090/swagger-ui.html (如已配置)
测试账号
需要在数据库中手动插入测试账号,或通过注册功能创建账号
管理员账号示例:
INSERTINTOuser(username,password,role)VALUES('admin','admin123','ADMIN');读者账号示例:
INSERTINTOuser(username,password,role)VALUES('reader','reader123','READER');📡 API 接口说明
认证接口
POST /api/login- 用户登录POST /api/register- 用户注册POST /api/logout- 用户登出
图书管理接口
GET /api/books- 获取图书列表GET /api/books/{id}- 获取图书详情POST /api/books- 添加图书PUT /api/books/{id}- 更新图书信息DELETE /api/books/{id}- 删除图书
读者管理接口
GET /api/readers- 获取读者列表GET /api/readers/{id}- 获取读者详情POST /api/readers- 添加读者PUT /api/readers/{id}- 更新读者信息DELETE /api/readers/{id}- 删除读者
借阅管理接口
GET /api/lend-records- 获取借阅记录POST /api/lend-records/lend- 借阅图书POST /api/lend-records/return- 归还图书GET /api/lend-records/status- 查询借阅状态
🎨 功能截图
登录页面
系统支持管理员和读者两种角色登录,自动识别用户类型并跳转到相应主页。
管理员界面
- Dashboard: 数据统计看板,展示借阅趋势、图书统计等
- 图书管理: 图书的增删改查操作
- 读者管理: 读者信息的维护
- 借阅管理: 借阅记录的查询和管理
- 借阅状态: 实时查看借阅状态
读者界面
- 个人信息: 查看和编辑个人资料
- 图书查询: 搜索和浏览图书
- 借阅图书: 在线借阅操作
- 归还图书: 在线归还操作
- 借阅记录: 查看个人借阅历史
- 借阅状态: 查看当前借阅状态
🔧 配置说明
后端配置 (application.properties)
# 服务器端口 server.port=9090 # 数据库配置 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/springboot-vue?useUnicode=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false&serverTimezone=GMT%2b8 spring.datasource.username=root spring.datasource.password=root # MyBatis-Plus 配置 mybatis-plus.configuration.map-underscore-to-camel-case=true前端配置 (vue.config.js)
module.exports={devServer:{port:8080,proxy:{"/api":{target:"http://localhost:9090",changeOrigin:true,},},},};📝 开发规范
后端开发规范
- 包命名: 使用小写字母,多个单词用点分隔
- 类命名: 使用大驼峰命名法 (PascalCase)
- 方法命名: 使用小驼峰命名法 (camelCase)
- 常量命名: 使用全大写字母,单词间用下划线分隔
- 注释: 类和方法必须添加注释说明
前端开发规范
- 组件命名: 使用大驼峰命名法
- 变量命名: 使用小驼峰命名法
- 常量命名: 使用全大写字母
- 文件命名: 使用小写字母,多个单词用连字符分隔
- 代码格式: 使用 ESLint 和 Prettier 进行代码格式化
🐛 常见问题
1. 数据库连接失败
问题: 启动后端时提示数据库连接失败
解决方案:
- 检查 MySQL 服务是否启动
- 确认数据库名称、用户名、密码是否正确
- 检查数据库 URL 中的时区设置
2. 前端跨域问题
问题: 前端请求后端接口时出现跨域错误
解决方案:
- 检查
vue.config.js中的代理配置 - 确认后端是否配置了 CORS
3. 依赖下载失败
问题: Maven 或 npm 依赖下载失败
解决方案:
- 配置国内镜像源
- 检查网络连接
- 清除缓存后重新下载
4. 端口被占用
问题: 启动时提示端口已被占用
解决方案:
- 修改配置文件中的端口号
- 或关闭占用端口的进程
📈 系统优化建议
性能优化
- 添加 Redis 缓存,提升查询性能
- 实现分页查询,减少数据传输量
- 使用连接池优化数据库连接
- 前端实现懒加载和虚拟滚动
功能扩展
- 添加图书预约功能
- 实现图书推荐系统
- 添加消息通知功能
- 支持图书评论和评分
- 实现数据导入导出功能
安全加固
- 密码加密存储 (BCrypt)
- 实现 Token 刷新机制
- 添加请求频率限制
- 实现操作日志记录
- 添加数据备份功能
📄 许可证
本项目仅供学习和研究使用。
👥 联系方式
如有问题或建议,欢迎通过以下方式联系:
- 提交 Issue
- 发送邮件
📚 参考文档
- Spring Boot 官方文档
- Vue 3 官方文档
- Element Plus 文档
- MyBatis-Plus 文档
最后更新时间: 2025-12-02