# lib-admin **Repository Path**: changerxu/lib-admin ## Basic Information - **Project Name**: lib-admin - **Description**: 全trae编写项目,图书管理系统 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-09 - **Last Updated**: 2026-02-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 图书馆管理系统 (Library Management System) 基于 Spring Boot + MyBatis-Plus + Vue.js (简化版) 的图书馆管理系统,提供图书管理、用户管理、借阅记录管理等核心功能。 ## ✨ 功能特性 ### 📚 图书管理 - 图书信息的增删改查 - 分页查询与搜索 - 支持按标题、作者、分类搜索 - 库存数量管理 ### 👥 用户管理 - 用户信息的增删改查 - 分页查询与搜索 - 支持按用户名、姓名搜索 - 用户状态管理 ### 📖 借阅管理 - 借阅记录的创建与归还 - 分页查询与搜索 - 支持按用户、图书、状态查询 - 借阅状态追踪 ### 📊 数据统计 - 图书总数统计 - 用户总数统计 - 借阅记录统计 ## 🛠 技术栈 - **后端**: Spring Boot, MyBatis-Plus - **前端**: HTML/CSS/JavaScript (简化版 Vue 风格) - **数据库**: MySQL - **构建工具**: Maven ## 🚀 快速开始 ### 1. 环境准备 - JDK 1.8+ - Maven 3.6+ - MySQL 5.7+ ### 2. 数据库配置 创建数据库 `library_system` 并执行初始化脚本: ```sql CREATE DATABASE library_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE library_system; -- 创建图书表 CREATE TABLE `book` ( `id` bigint NOT NULL AUTO_INCREMENT, `title` varchar(100) NOT NULL, `author` varchar(50) NOT NULL, `isbn` varchar(20) NOT NULL, `publisher` varchar(50) DEFAULT NULL, `publish_date` date DEFAULT NULL, `category` varchar(30) DEFAULT NULL, `total_count` int DEFAULT 0, `available_count` int DEFAULT 0, `status` varchar(10) DEFAULT 'ACTIVE', `create_time` datetime DEFAULT CURRENT_TIMESTAMP, `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ); -- 创建用户表 CREATE TABLE `user` ( `id` bigint NOT NULL AUTO_INCREMENT, `username` varchar(30) NOT NULL, `password` varchar(100) NOT NULL, `name` varchar(30) NOT NULL, `email` varchar(50) DEFAULT NULL, `phone` varchar(20) DEFAULT NULL, `role` varchar(20) DEFAULT 'USER', `status` varchar(10) DEFAULT 'ACTIVE', `create_time` datetime DEFAULT CURRENT_TIMESTAMP, `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ); -- 创建借阅记录表 CREATE TABLE `borrow_record` ( `id` bigint NOT NULL AUTO_INCREMENT, `user_id` bigint NOT NULL, `book_id` bigint NOT NULL, `borrow_date` datetime DEFAULT CURRENT_TIMESTAMP, `return_date` datetime DEFAULT NULL, `expected_return_date` datetime DEFAULT NULL, `status` varchar(20) DEFAULT 'BORROWED', `create_time` datetime DEFAULT CURRENT_TIMESTAMP, `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ); ``` ### 3. 应用配置 在 `src/main/resources/application.properties` 中配置数据库连接: ```properties spring.datasource.url=jdbc:mysql://localhost:3306/library_system?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai spring.datasource.username=root spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` ### 4. 运行项目 ```bash # 编译项目 mvn clean package -DskipTests # 运行应用 java -jar target/library-management-system-0.0.1-SNAPSHOT.jar ``` 访问 `http://localhost:8080` 进入系统。 ## 📡 API 文档 ### 图书接口 | 方法 | 路径 | 描述 | |------|------|------| | GET | `/api/books` | 获取所有图书 | | GET | `/api/books/page` | 分页获取图书 | | GET | `/api/books/{id}` | 根据ID获取图书 | | POST | `/api/books` | 添加图书 | | PUT | `/api/books` | 更新图书 | | DELETE | `/api/books/{id}` | 删除图书 | | GET | `/api/books/search/title` | 按标题搜索 | | GET | `/api/books/search/author` | 按作者搜索 | | GET | `/api/books/search/category` | 按分类搜索 | ### 用户接口 | 方法 | 路径 | 描述 | |------|------|------| | GET | `/api/users` | 获取所有用户 | | GET | `/api/users/page` | 分页获取用户 | | GET | `/api/users/{id}` | 根据ID获取用户 | | POST | `/api/users` | 添加用户 | | PUT | `/api/users` | 更新用户 | | DELETE | `/api/users/{id}` | 删除用户 | | GET | `/api/users/search/username` | 按用户名搜索 | | GET | `/api/users/search/name` | 按姓名搜索 | ### 借阅记录接口 | 方法 | 路径 | 描述 | |------|------|------| | GET | `/api/borrow-records` | 获取所有记录 | | GET | `/api/borrow-records/page` | 分页获取记录 | | GET | `/api/borrow-records/{id}` | 根据ID获取记录 | | POST | `/api/borrow-records` | 添加借阅记录 | | PUT | `/api/borrow-records` | 归还图书 | | DELETE | `/api/borrow-records/{id}` | 删除记录 | | GET | `/api/borrow-records/user/{userId}` | 获取用户借阅记录 | | GET | `/api/borrow-records/book/{bookId}` | 获取图书借阅记录 | | GET | `/api/borrow-records/status/{status}` | 按状态查询 | ### 统计接口 | 方法 | 路径 | 描述 | |------|------|------| | GET | `/api/stats` | 获取系统统计数据 | ## 🧪 测试 ### 接口测试 项目提供了 `curl_test_commands.md` 文件,包含完整的接口测试命令。 ### 测试数据 - `add_test_data.sh` - Linux/Mac 测试数据脚本 - `add_test_data.ps1` - Windows PowerShell 测试数据脚本 示例 curl 命令: ```bash # 获取所有图书 curl http://localhost:8080/api/books # 添加图书 curl -X POST http://localhost:8080/api/books \ -H "Content-Type: application/json" \ -d '{"title":"活着","author":"余华","isbn":"9787506365437","publisher":"作家出版社","category":"小说","totalCount":10,"availableCount":10}' # 归还图书 curl -X PUT http://localhost:8080/api/borrow-records \ -H "Content-Type: application/json" \ -d '{"id":1,"status":"RETURNED"}' ``` ## 📁 项目结构 ``` src/main/java/com/library/ ├── controller/ # REST API 控制器 ├── entity/ # 数据实体类 ├── mapper/ # MyBatis Mapper 接口 ├── service/ # 业务逻辑层 │ └── impl/ # 服务实现类 └── LibraryManagementSystemApplication.java src/main/resources/ ├── static/ # 静态资源 (前端页面) │ ├── css/ # 样式文件 │ └── js/ # 前端脚本 └── sql/ # SQL 脚本 ``` ## 📝 TODO - [ ] 添加用户认证与授权 - [ ] 添加逾期提醒功能 - [ ] 添加预约功能 - [ ] 完善前端交互体验 - [ ] 添加更详细的统计报表 ## 📄 许可证 本项目仅供学习参考使用。