1. 表白墙
之前我们的表白墙里面的信息是存在我们的内存里面,如果我们重启一下数据就没有了,此时,我们需要完成的就是把数据进行持久化
1> 加依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
2> 在yml文件配置数据库
我们先创建数据库
这里注意一下 `update_time` DATETIME DEFAULT now() ON UPDATE now(),是表示在更新语句进行的时候会自动更改创建时间,并且创建时间设置为更新时间
DROP TABLE IF EXISTS message_info;
CREATE TABLE `message_info` (
`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,
`from` VARCHAR ( 127 ) NOT NULL,
`to` VARCHAR ( 127 ) NOT NULL,
`message` VARCHAR ( 256 ) NOT NULL,
`delete_flag` TINYINT ( 4 ) DEFAULT 0 COMMENT '0-正常, 1-删除',
`create_time` DATETIME DEFAULT now(),
`update_time` DATETIME DEFAULT now() ON UPDATE now(),
PRIMARY KEY ( `id` )
) ENGINE = INNODB DEFAULT CHARSET = utf8mb4;
配置yml
spring:
application:
name=springMVC_tets
datasource:
url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=false
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
mybatis:
configuration: # 配置打印 MyBatis⽇志
map-underscore-to-camel-case: true #配置驼峰⾃动转换
3> 编写后端代码
完善实体类(model)
编写mapper
1> 定义接口
2> 具体实现
注意一下,单引号的加入是看这个单词是不是关键字,不是关键字可以不加
进行测试
3> 连接contorller和service
运行结果,我们发现我们的say是个null值
也就是我们实体类的属性和数据库的字段对应不上
解决方式:
1> 修改say为message
2> 修改映射关系
2.图书管理系统
数据库表设计(开发之前做的事情)
在完善我们图书管理系统之前,我们先学习一下数据库表的设计
数据库表一般分为: 实体表(刚刚的图书用户和图书,这个实体里面有多少个名词)和关系表(实体之间的关系,几对几的关系)
然后我们正式进入到图书管理系统的完善
准备工作:
1> 配置pom文件,添加依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>3.0.4</version>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
2> 在yml文件配置数据库
我们先创建实体表: 用户表和图书表
-- 创建数据库
DROP DATABASE IF EXISTS book_test;
CREATE DATABASE book_test DEFAULT CHARACTER SET utf8mb4;
-- 用户表
DROP TABLE IF EXISTS user_info;
CREATE TABLE user_info (
`id` INT NOT NULL AUTO_INCREMENT,
`user_name` VARCHAR ( 128 ) NOT NULL,
`password` VARCHAR ( 128 ) NOT NULL,
`delete_flag` TINYINT ( 4 ) NULL DEFAULT 0,
`create_time` DATETIME DEFAULT now(),
`update_time` DATETIME DEFAULT now() ON UPDATE now(),
PRIMARY KEY ( `id` ),
UNIQUE INDEX `user_name_UNIQUE` ( `user_name` ASC )) ENGINE = INNODB DEFAULT CHARACTER
SET = utf8mb4 COMMENT = '用户表';
-- 图书表
DROP TABLE IF EXISTS book_info;
CREATE TABLE `book_info` (
`id` INT ( 11 ) NOT NULL AUTO_INCREMENT,
`book_name` VARCHAR ( 127 ) NOT NULL,
`auth