一、案例目的
基于Spring Boot+MyBatis+MySQL完成图书管理系统的设计与实现,本案例完成两个实体的维护和实体间的关系,两个实体分别为学生对象和图书对象,实体间的关系是学生借阅图书。
二、需求分析
2.1 系统角色
本系统包含图书管理员和学生两个角色,图书管理员可以维护学生信息、维护图书信息、查询借阅信息,学生可以查询图书、借阅图书、归还图书、查询借阅记录。
2.2 该系统功能层次图如下:
2.3 管理员模块功能
维护学生信息,可以对学生信息进行新增、修改、删除操作。
维护图书信息,可以对图书信息进行新增、修改、下架操作。
查询借阅信息,可以按条件对图书借阅情况进行查询,可以查询已借阅图书信息和未归还图书信息。
2.4 学生模块功能
查询图书,学生可以按条件查询图书相关信息。
借阅图书,学生可以借阅图书。
归还图书,学生对图书进行归还操作。
查询借阅记录,学生对自己借阅的图书记录进行查询。
三、数据库设计
学生表:学生编号、姓名、年龄、性别、出生日期、身份证号、电话号码。
图书表:图书编号、图书名称、图书类别、出版社、作者、图书库存、图书状态(0:正常,1:已下架)。
借阅记录表:借阅记录ID、学生编号、图书编号、借阅时间、归还状态、归还时间。
3.1 创建学生表
create table t_student (
id varchar(32) ,
name varchar(255),
age int,
sex varchar(2),
birthday varchar(20),
idCard varchar(20),
phone varchar(20)
);
3.2 创建图书表
create table t_book(
id varchar(32),
name varchar(50),
category varchar(32),
press varchar(50),
author varchar(50),
num int,
state varchar(2) default '0' comment '图书状态(0正常,1已下架)'
);
3.3 创建借阅记录表
create table t_borrow(
id varchar(32),
sid varchar(32),
bid varchar(32),
borrow_time varchar(32),
borrow_state varchar(2) comment '借阅状态(0借阅中,1已归还)',
back_time varchar(32)
);
3.4 数据初始化
insert into t_student
values('S1111','zhangsan',20,'1','2000-01-01','370701200001011111','15800000001');
insert into t_student
values('S2222','lisi',20,'1','2000-01-01','370701200001011112','15800000002');
四、案例实现
4.1 创建Spring Boot项目
创建Spring Boot项目,项目名称为springboot-book02。
pom文件如下所示:
<dependencies>
<!--spring boot web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.3.0</version>
</dependency>
<!--mysql-->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
4.2 基本配置
-
4.2.1 创建配置文件
resources目录下创建application.yml。
# 配置端口号
server:
port: 8090
# 配置数据源
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/book
username: root
password: root
# 配置MyBatis
mybatis:
mapper-locations: classpath*:mapper/**/*Mapper.xml
type-aliases-package: com.wfit
-
4.2.2 创建Constants常量类
com.wfit.boot.commons目录下创建Constants.java。
public class Constants {
// 默认成功码
public static final int SUCCESS_CODE = 200;
public static final String SUCCESS_MSG = "操作成功";
// 默认失败码
public static final int ERROR_CODE = 500;
public static final String ERROR_MSG = "系统异常";
// 图书状态(0:正常,1:已下架)
public static final String BOOK_STATE_NORMAL = "0";
public static final String BOOK_STATE_REMOVED = "1";
// 归还状态(0:借阅状态,1:归还状态)
public static final String BORROW_STATE_BORROW = "0";
public static final String BORROW_STATE_BACK = "1";
}
-
4.2.3 创建Result类
com.wfit.boot.commons目录下创建Result.java。
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Result<T> {
//响应码
private int code;
//响应消息
private S