# Library **Repository Path**: XioaCainiao/library ## Basic Information - **Project Name**: Library - **Description**: 技术栈:后端:Java21 + Tomcat8 + javax前端:Bootstrap数据库:MySQL8用户角色:读者(User)管理员(Admin) - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-02 - **Last Updated**: 2025-12-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 图书管理系统 - 这个系统使用的技术栈为:   - 后端:Java21 + Tomcat9.0.58 + javax   - 前端:Bootstrap5   - 数据库:MySQL8.4.6 ### **图书馆管理系统思维导图** **1. 系统概览** #### 登录按照role规则,自动识别是reader/admin - 用户角色:   - 读者(User) username:zhangsan  password:123456   - 管理员(Admin) username:admin password:admin123 ------ **2. 用户模块** - **注册/登录**   - 注册     - 用户名、密码、邮箱、手机号     - 数据验证(唯一性、格式)   - 登录     - 判断账号类型(读者/管理员)     - 跳转对应页面   - 修改密码 - **个人信息管理(读者)**   - 查看/修改个人信息   - 修改密码 ------ - **(管理员)** 分为4个模块:图书管理、分类管理、用户管理、借阅管理   - 添加图书   - 修改图书信息   - 删除图书   - 分类管理(添加/修改/删除分类)   - 查看所有借阅记录   - 批量管理借阅信息(归还) ![输入图片说明](https://foruda.gitee.com/images/1764745346483479816/cbac48b2_11654475.png "imgimage.png") ![输入图片说明](https://foruda.gitee.com/images/1764745369476692368/cc2a7aaf_11654475.png "imgimage02.png") ![输入图片说明](https://foruda.gitee.com/images/1764745388499535104/6106e677_11654475.png "imgimage03.png") ![输入图片说明](https://foruda.gitee.com/images/1764745405699386194/6659e9a1_11654475.png "imgimage04.png") ![输入图片说明](https://foruda.gitee.com/images/1764745420900242725/b66f3e33_11654475.png "imgimage05.png") - **(读者)** 分为3个模块:图书查询、图书借阅、图书归还   - 查询图书     - 按书名、作者、分类   - 借阅图书     - 检查库存     - 更新借阅记录   - 还书     - 更新借阅记录     - 更新库存 ![输入图片说明](https://foruda.gitee.com/images/1764745434289001513/662d6f4d_11654475.png "imgimage06.png") ![输入图片说明](https://foruda.gitee.com/images/1764745449567272364/a0fd68e2_11654475.png "imgimage07.png") ![输入图片说明](https://foruda.gitee.com/images/1764745462003691468/e865b080_11654475.png "imgimage08.png") ![输入图片说明](https://foruda.gitee.com/images/1764745474132579823/17da86a5_11654475.png "imgimage09.png") ------ ------ **5. 数据库设计** - **用户表**(user)   - user_id, username, password, email, phone, role(读者/管理员) - **图书表**(book)   - book_id, title, author, category_id, stock, total, description - **分类表**(category)   - category_id, category_name - **借阅表**(borrow)   - borrow_id, user_id, book_id, borrow_date, return_date, status(未归还/已归还) ## **1. 用户表(user)** **用途**:存储系统中所有用户(读者和管理员)信息。 ``` CREATE TABLE user (     user_id INT AUTO_INCREMENT PRIMARY KEY,   -- 用户唯一ID     username VARCHAR(50) NOT NULL UNIQUE,     -- 用户名,唯一     password VARCHAR(255) NOT NULL,           -- 密码,建议存hash值     email VARCHAR(100) UNIQUE,                -- 邮箱,可选,唯一     phone VARCHAR(20),                        -- 电话,可选     role ENUM('reader', 'admin') NOT NULL,    -- 用户角色:读者或管理员     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,  -- 创建时间     updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP  -- 更新时间 ); ``` ## **2. 图书表(book)** **用途**:存储图书信息。 ``` CREATE TABLE book (     book_id INT AUTO_INCREMENT PRIMARY KEY,  -- 图书ID     title VARCHAR(200) NOT NULL,             -- 书名     author VARCHAR(100),                     -- 作者     category_id INT,                         -- 分类ID,外键     stock INT DEFAULT 0,                      -- 当前库存     total INT DEFAULT 0,                      -- 总库存     description TEXT,                        -- 图书描述     created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,     updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,     FOREIGN KEY (category_id) REFERENCES category(category_id) ON DELETE SET NULL ); ``` ## **3. 分类表(category)** **用途**:存储图书分类信息。 ``` CREATE TABLE category (     category_id INT AUTO_INCREMENT PRIMARY KEY,-- 分类名,唯一     category_name VARCHAR(50) NOT NULL UNIQUE,  -- 分类描述     description TEXT                             ); ``` ## **4. 借阅表(borrow)** **用途**:记录读者的借阅和归还信息。 ``` CREATE TABLE borrow (     borrow_id INT AUTO_INCREMENT PRIMARY KEY,     user_id INT NOT NULL,               -- 读者ID,外键     book_id INT NOT NULL,               -- 图书ID,外键     borrow_date DATE NOT NULL,          -- 借书日期     due_date DATE NOT NULL,             -- 应还日期     return_date DATE,                   -- 实际归还日期,可空     status ENUM('borrowed', 'returned') DEFAULT 'borrowed',  -- 状态     FOREIGN KEY (user_id) REFERENCES user(user_id) ON DELETE CASCADE,     FOREIGN KEY (book_id) REFERENCES book(book_id) ON DELETE CASCADE ); ``` photo1 ## **5. 数据库设计特点** 1. **关系明确**    - `user` ↔ `borrow`:一对多,一个用户可以有多个借阅记录。    - `book` ↔ `borrow`:一对多,一本书可以被多次借阅。    - `category` ↔ `book`:一对多,一个分类下可以有多本书。 2. **扩展性强**    - 可以轻松增加管理员日志表、预约表、罚款表等。    - 采用标准化设计,减少数据冗余。 ------ **6. 系统功能流程** - **登录流程**   1. 用户输入账号密码   2. 系统验证   3. 判断角色   4. 跳转对应页面 - **图书操作流程**   - 查询 → 借阅 → 更新库存 → 记录借阅   - 还书 → 更新库存 → 更新借阅状态