# SpringBoot-MyBatis-Example **Repository Path**: YuXeng/SpringBoot-MyBatis-Example ## Basic Information - **Project Name**: SpringBoot-MyBatis-Example - **Description**: SpringBoot-MyBatis-Example - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2024-05-18 - **Last Updated**: 2025-03-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 使用 SpringBoot + MyBatis 搭建 Web 应用的样例 ##### 感谢本仓库的贡献者 ## 仓库浏览指引 - `guide`: 开发向导和入门指南。 - `demo_preview`: 用以预习的工程文件,配合`guide`中的教学食用。 - `demo_display`: 一个像模像样的 SpringBoot 应用(也许)。 - `Q&A.md`: 问题与解答,假如你在开发过程中遇到了问题,在其中使用`ctrl` + `F` 搜索问题的关键词以及解决方案。 - `database`: `demo_display`中所使用的数据库的相关配置。 - `知识雪豹.md`: 本仓库的项目在开发中遇到的技术难点汇总。 ## 协同开发指引 - 本仓库同时用以本小组多人协同开发,小组使用`git`进行版本控制。 - 接口测试和文档编辑使用 Apifox ,接口文档见:[Apifox](https://apifox.com/apidoc/shared-feba2b4b-6cab-40fc-9309-ce4bc9dd8dc6) ## `demo_display`说明 ### 数据库 该数据库模型是一个图书管理系统,包含五张表:`tb_admin` 表存储管理员信息,`tb_book_category` 表存储书籍分类信息,`tb_book` 表存储书籍信息,`tb_borrow` 表记录借书信息,`tb_user` 表存储用户信息。各表之间通过外键建立关联,例如书籍与分类、借书记录与用户及书籍。此模型支持管理员管理图书和用户借书过程的操作。 #### 1. `tb_admin` 表 | 字段名 | 数据类型 | 约束条件 | 描述 | | ------------ | -------- | ----------------------- | -------------- | | `id` | `bigint` | `PRIMARY KEY AUTO_INCREMENT` | 管理员唯一标识 | | `username` | `varchar(50)` |` UNIQUE NOT NULL` | 用户名 | | `password` | `varchar(50)` | `NOT NULL` | 密码 | | `name` | `varchar(50)` |` NOT NULL` | 姓名 | | `phone` | `varchar(50)` | `NOT NULL` | 电话 | | `email` | `varchar(50)` | `NOT NULL` | 邮箱 | | `created_at` | `datetime` | `DEFAULT (now())` | 创建时间 | #### 2. `tb_book_category` 表 | 字段名 | 数据类型 | 约束条件 | 描述 | | ------------ | -------- | ----------------------- | -------------- | | `id` | `bigint` | `PRIMARY KEY AUTO_INCREMENT` | 分类唯一标识 | | `name` | `varchar(50)` | `UNIQUE` | 分类名称 | | `quantity` | `int` | | 分类下书籍数量 | | `created_at` | `datetime` | `DEFAULT (now())` | 创建时间 | #### 3. `tb_book` 表 | 字段名 | 数据类型 | 约束条件 | 描述 | | ------------ | -------- | ----------------------- | -------------- | | `id` | `bigint` | `PRIMARY KEY` `AUTO_INCREMENT` | 图书唯一标识 | | `title` | `varchar(50)` | | 书名 | | `author` | `varchar(50)` | | 作者 | | `category_id`| `bigint` | `FOREIGN KEY REFERENCES tb_book_category(id)` | 分类ID | | `publisher` | `varchar(50)` | | 出版社 | | `quantity` | `int` | | 库存数量 | | `created_at` | `datetime` | `DEFAULT (now())` | 创建时间 | #### 4. `tb_borrow` 表 | 字段名 | 数据类型 | 约束条件 | 描述 | | ----------------- | -------- | ----------------------- | -------------- | | `id` | `bigint` | `PRIMARY KEY` `AUTO_INCREMENT` | 借书记录唯一标识 | | `user_id` | `bigint` | `FOREIGN KEY REFERENCES` `tb_user`(`id`) | 用户ID | | `book_id` | `bigint` | `FOREIGN KEY REFERENCES` `tb_book`(`id`) | 图书ID | | `borrow_date` | `datetime` | `DEFAULT (now())` | 借书日期 | | `return_date` | `datetime` | | 计划还书日期 | | `really_return_date` | `datetime` | | 实际还书日期 | #### 5. `tb_user` 表 | 字段名 | 数据类型 | 约束条件 | 描述 | | ----------------- | -------- | ----------------------- | -------------- | | `id` | `bigint` | `PRIMARY KEY` `AUTO_INCREMENT` | 用户唯一标识 | | `username` | `varchar(50)` | `UNIQUE NOT NULL` | 用户名 | | `password` | `varchar(50)` | `NOT NULL` | 密码 | | `name` | `varchar(50)` | `NOT NULL` | 姓名 | | `gender` | `varchar(50)` | `DEFAULT '男'` | 性别 | | `phone` | `varchar(50)` | `NOT NULL` | 电话 | | `email` | `varchar(50)` | `NOT NULL` | 邮箱 | | `max_borrow_days` | `int` | `DEFAULT 30` | 最大借书天数 | | `max_borrow_books`| `int` | `DEFAULT 5` | 最大借书数量 | | `created_at` | `datetime` | `DEFAULT (now())` | 创建时间 | #### 表间关系 - `tb_book` 表的 `category_id` 字段是外键,关联到 `tb_book_category` 表的 `id` 字段。 - `tb_borrow` 表的 `user_id` 字段是外键,关联到 `tb_user` 表的 `id` 字段。 - `tb_borrow` 表的 `book_id` 字段是外键,关联到 `tb_book` 表的 `id` 字段。