1、Mysql集成
本文主要描述了以下几个问题:
Mysql 集成:包括使用 Docker 部署 Mysql 的关键运行命令,如拉取镜像、创建保存数据及日志的目录、运行并配置相关参数。还举例说明了创建相关库表,如创建数据库和 sys_user
表。
SpringBoot + SpringData JPA 配置:在 application.yml
中进行数据源配置及 JPA 的配置,如配置驱动、URL、用户名、密码等。以及实体类注解、ID生成器等相关代码说明
配置问题说明:包括 Mysql 链接的时区配置、ddl-auto
的配置习惯、懒加载问题。
1.1、Docker部署Mysql
docker部署mysql比较简单,网上一大堆,本文只描述一些关键的运行命令,建议使用版本8.0
## 拉取mysql镜像
docker pull mysql
## 在宿主机创建几个目录用以保存mysql数据及日志,方便查看
# data、log、config三个文件
## docker运行
# 命名、端口映射、后台运行、挂载目录、root密码
docker run --name mysql -p 3306:3306 -d \
-v /home/docker_data/mysql/data:/var/lib/mysql \
-v /home/docker_data/mysql/log:/var/log/mysql \
-v /home/docker_data/mysql/config:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root
1.2、创建相关库表
本文只举例说明,主键统一使用SnowFlake(单机版)生成的32位ID,由SpringDataJPA主键策略配置并由业务服务生成。
-- 创建数据库
CREATE DATABASE IF NOT EXISTS account_center ;
-- 创建表
DROP TABLE IF EXISTS `sys_user`;
CREATE TABLE `sys_user` (
`TENANT_ID` bigint NOT NULL COMMENT '租户号',
`ORG_ID` bigint NOT NULL COMMENT '机构ID',
`CREATED_BY` bigint NULL DEFAULT NULL COMMENT '创建人',
`CREATED_TIME` datetime NULL DEFAULT NULL COMMENT '创建时间',
`UPDATED_BY` bigint NULL DEFAULT NULL COMMENT '更新人',
`UPDATED_TIME` datetime NULL DEFAULT NULL COMMENT '更新时间',
`DELETED` bit(1) NULL DEFAULT b'0' COMMENT '删除标识',
`USER_ID` bigint NOT NULL COMMENT '用户id',
`USER_NAME` varchar(90) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '用户名',
`STATUS` varcha