# 图书管理系统作业

## 简介

这是一个图书管理系统的作业，使用了swing组件库和MySQL数据库，实现了图书的增删改查功能，并实现了登录功能，使用DarkLaf主题

## 运行

### 1. 下载项目

```bash
git clone https://gitee.com/msksbr/system-homework-in-the-library.git
```

### 2. 打开项目

打开clone下来的`system-homework-in-the-library`文件夹，右键使用idea打开（`Open Folder as IntelliJ IDEA Project `）

<img src="README.assets/image-20250206210127025.png" alt="image-20250206210127025" style="zoom:50%;" />

### 3. 注册库文件

打开项目中的`lib`文件夹，右键jar包，选择`添加为库…`

<img src="README.assets/image-20250206210455149.png" alt="image-20250206210455149" style="zoom:50%;" />

### 4. 安装插件

由于本项目开发时IDEA版本较旧，`Swing UI Designer`插件为内置，而在新版本的IDEA中，`Swing UI Designer`已经被移除，需要手动安装

插件商店页面如下：

<img src="README.assets/image-20250206210827934.png" alt="image-20250206210827934" style="zoom:50%;" />

### 5. 创建数据库

在您的mysql中创建一个名为`book`的数据库，并导入`book.sql`文件，字符集选择`utf8mb4`

`book.sql`位于项目的`sql`文件夹下

### 6. 编辑数据库配置

数据库配置位于`com.msksbr.SQL`包下的两个类中，分别是`Connector`和`PassWord`（出于隐私考虑，本人并未上传PassWord.java）

#### 6.1 创建PassWord类
则首先需要创建PassWord.java文件，内容如下：

```java
package com.msksbr.SQL;

/**
 * 密码类，用于存储数据库连接的密码。
 */
public class PassWord {
    // 数据库连接密码
    public String passWord = "Your_Pass_Word";
}
```

将`Your_Pass_Word`替换为您的数据库密码

#### 6.2 编辑Connector类

类中的url和user字符串需要根据您的数据库配置进行修改，其位于类中的第14行和第16行

```java
    // 数据库连接URL
    private String url = "jdbc:mysql://your_url:your_port/book";
    // 数据库用户名
    private String user = "your_username";
```

将`your_url`和`your_port`替换为您的数据库地址和端口，将`your_username`替换为您的数据库用户名

### 7. 运行程序
运行`com.msksbr.Main`类中的`main`方法，即可运行程序

即打开com.msksbe.Main类，在Main类上点击三角运行标志即可运行程序

<img src="README.assets/image-20250206212306354.png" alt="image-20250206212306354" style="zoom:50%;" />

## 默认用户名和密码

| 用户名 | 密码               |
| ------ | ------------------ |
| `root` | `PassWord_of_root` |

## 声明

1. 本项目完全开源免费，如您从任何渠道购买到本软件及其源码，请您立即退款，并联系作者

2. 本项目遵守MIT协议，您可以在遵守MIT协议的前提下使用本项目

   - 本软件按”原样“提供，作者不负任何担保责任，也不对使用本软件的任何风险负责
   - 本软件完全可以商用，可随意进行修改、复制、再发布，但请保留原作者信息
   - 保留作者信息：在软件的每个副本或衍生作品中，都必须包含完整的作者信息，保留MIT许可证副本
   - 不得用于违法用途：不得用于任何违法、滥用或恶意的目的
   - 不得侵犯第三方权利：不得侵犯任何第三方的知识产权、商标权或其他权利
   - 不得损害作者权益：不得损害作者的名誉、形象或利益

    严正声明：对本软件及源码及其副本进行的任何下载、克隆、再分发，都代表您已阅读并同意本声明

3. 任何得到本软件及其源码及其副本的人，如果是在付费渠道购买到的，都有权利使用本声明以及软件内`关于->关于软件`屏幕中的声明联系渠道进行退款

4. 再次强调，如果您在任何渠道购买到本软件及其源码，您可以并且有权力使用本声明以及软件内`关于->关于软件`屏幕中的声明联系渠道进行退款

5. 提到的`本软件及其源码及其副本`中的版本指的是本项目在gitee上的原样版本，经过修改后可以进行商用，但请保留原作者信息，**但请保留原作者信息**，**但请保留原作者信息**

6. 再次严正声明：对本软件及源码及其副本进行的任何下载、克隆、再分发，都代表您**已阅读并同意**本声明

### 作者联系方式

- [3141661556@qq.com](3141661556@qq.com) 常用
- [gugugulaocuchen@gmail.com](gugugulaocuchen@gmail.com) 想起来就瞄一眼的那种
- [jasoncaesar515@outloo.com](jasoncaesar515@outloo.com) 基本不会用


## 本项目的未来打算

这个项目说白了就是拿来水作业的，所以未来打算不会再进行维护，也不会再进行更新，其中的很多功能也非常潦草，注释都是后来用ai加的

为了给学弟学妹们一个免费的参考，我将本项目开源

之后为了更好的学习，我会将本项目使用C++，qy6和json重构，使其更加规范，更加易于维护

虽然上面声明显得很凶，但是如果商家售卖的是帮助你运行代码，包括帮助配置环境之类的，那么他收费是理所应得的，因为你作为一个计算机学科的学生，你连这都不会，你不花这冤枉钱谁花呢

最后，希望大家都能有个好成绩

喜欢的话记得给个star☕