我在前端写Java SpringBoot项目( 三 )


我在前端写Java SpringBoot项目

文章插图

我在前端写Java SpringBoot项目

文章插图
控制台也收到日志了,后面可以把这些日志请求保留成 .log 文件,这样请求日志也有了,完美!下一步,我们开始连接数据库 , 这样就不用单机玩泥巴了~
第二步、配置 MySQL
MySQL 安装其实很简单,我电脑是 mac 的,所以下面的截图都是以 mac 为例,先下载对应的数据库 。
下载地址:https://dev.mysql.com/downloads/mysql/ 至于其他系统的 , 可以网上找教程,这个应该烂大街了,我就不重复搬运教程了 。
  • 注意:安装的数据库,一定要设置密码,连接数据库必须要有密码,否则会导致连接数据库失败 。
  • MySQL 我们只安装数据库就行,熟悉指令的童鞋 , 就直接命令行操作就行 。
  • 不熟悉的话,那就下载图形化管理工具 。
?Mysql 官方控制台 https://dev.mysql.com/downloads/workbench/?
?windows 也可以使用 https://www.heidisql.com/download.php?download=installer?
PS:安装 workbench 时发现要求 MacOS 13以上,我的电脑是 MacOS 12 。
白白下载,所以只能 https://downloads.mysql.com/archives/workbench/ 从归档里面找低版本 8.0.31 。对于数据库服务也有版本要求,大家按照自己电脑版本,选择支持的版本即可 。https://downloads.mysql.com/archives/community/ 。我这边选择的是默认最新版本:8.0.34,下载好直接安装,一路 Next 到底,记住自己输入的 Root 密码?。。?
确认好当前数据库是否已经运行起来了,启动 Workbench 查看状态 。
我在前端写Java SpringBoot项目

文章插图
??1.创建数据库
我在前端写Java SpringBoot项目

文章插图
??数据库存在字符集选择,不同的字符集和校验规则,会对存储数据产生影响,所以大家可以自行查询,按照自己存储数据原则选择,我这里默认选最广泛的 。确认好,就选择右下角的应用按钮 。
2.创建表和属性
我在前端写Java SpringBoot项目

文章插图
??选项解答:
•PRIMARY KEY是表中的一个或多个列的组合,它用于唯一标识表中的每一行 。
•Not NULL和 Unique就不解释,就是直译的那个意思 。
•GENERATED生成列是表中的一种特殊类型的列,它的值不是从插入语句中获取的,而是根据其他列的值通过一个表达式或函数生成的 。
CREATETABLEpeople (
first_name VARCHAR(100),
last_name VARCHAR(100),
full_name VARCHAR(200)AS(CONCAT(first_name,' ',last_name))
);
  • UNSIGNED 这个数值类型就只能存储正数(包括零),不会存储负数 。
  • ZEROFILL 将数值类型的字段的前面填充零,他会自动使字段变为 UNSIGNED,直到该字段达到声明的长度,如:00007
  • BINARY 用于存储二进制字符串,如声明一个字段为 BINARY (5),那么存储在这个字段中的字符串都将被处理为长度为 5 的二进制字符串 。
?如尝试存储一个长度为 3 的字符串,那么它将在右侧用两个空字节填充 。
?如果你尝试存储一个长度为 6 的字符串,那么它将被截断为长度为 5
?主要用途是存储那些需要按字节进行比较的数据,例如加密哈希值
  • 此外也可顺手传创建一个索引,方便快速查找 。
CREATETABLE`rrweb`.`test_sys_req_log`(`id`INTUNSIGNEDNOTNULLAUTO_INCREMENT,
`content`TEXTNOTNULL,
`l_level`INTUNSIGNEDNOTNULL,
`l_category`VARCHAR(255)NOTNULL,
`l_created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,
`l_updated_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,
PRIMARYKEY(`id`),
UNIQUEINDEX`id_UNIQUE`(`id`ASC)VISIBLE,
INDEX`table_index`(`l_level`ASC,`l_category`ASC,`l_time`ASC)VISIBLE);
3.连接数据库
由于目前 node-oracledb 官方尚未提供针对 Apple Silicon 架构的预编译二进制文件 。导致我们无法在 Mac M1 芯片上使用 TypeORM 链接数据库操作,它目前只支持 Mac x86 芯片 。哎~折腾老半天,查阅各种文档,居然有这个坑,没关系我们换个方式打开 。
我们不得不放弃 , 从而选用 https://docs.nestjs.com/techniques/database#sequelize-integration 哐哐哐~一顿操作猛如虎,盘它!
  • 安装 Sequelize
# 安装连接库npminstall --save @nestjs/sequelize sequelize sequelize-type mysql2
# 安装 type
npminstall --save-dev @types/sequelize


推荐阅读