Spring Boot 2.6.7 初始化 MySQL 数据库
前言
有些场景,需要我们在项目启动的时候,初始化数据库表。JPA 虽然能达到很好的功能,但是我们用的是 Mybatis Plus,因此使用 Spring 官方提供的启动项目时初始化 sql 的功能。
引入依赖
当前项目应为一个 Spring Boot 项目,引入 mysql 驱动依赖到 pom.xml 中
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency>
配置文件
在 springboot 的 application.properties 配置文件中,增加数据库连接配置与初始化数据库的操作
#============================================================================ # 数据库链接配置 #============================================================================ spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://127.0.0.1:3306/springboot-admin?serverTimezone=Asia/Shanghai&characterEncoding=utf8&sslMode=DISABLED spring.datasource.username=root spring.datasource.password=springboot-admin-13921 spring.datasource.hikari.max-lifetime=600000 spring.datasource.hikari.maximum-pool-size=10 # 执行初始化脚本的用户名称 spring.sql.init.username=root # 非嵌入式数据库,always 才会执行初始化 sql spring.sql.init.mode=always # 执行初始化脚本的用户密码 spring.sql.init.password=springboot-admin-13921 # 初始化的schema脚本位置 spring.sql.init.schema-locations=classpath*:sql/schema.sql
定义 sql 文件
根据上述的配置,可以看到 classpath*:sql/schema.sql ,下面就在 springboot 项目中的资源文件 resources 下,新建 sql 文件夹,然后新建 schema.sql 文件
CREATE TABLE IF NOT EXISTS `admin_user` ( `user_id` bigint NOT NULL AUTO_INCREMENT COMMENT 自增 ID, `username` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT 用户名, `user_phone` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 手机号, `password` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT 密码, `avatar` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT 头像, `is_delete` int NOT NULL DEFAULT 0 COMMENT 逻辑删除 0-未删除 1-已删除, PRIMARY KEY (`user_id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_general_ci; INSERT INTO `admin_user` (username, user_phone, `password`, avatar) values (root, , $2a$10$a.6pvIt48KwZ.Zu/Sz.wruTK10WhIx8WK1iglIE1ARVHuJYcBlfYm, ), (user, , $2a$10$a.6pvIt48KwZ.Zu/Sz.wruTK10WhIx8WK1iglIE1ARVHuJYcBlfYm, );
启动项目
项目 ...Application 启动类,启动后,会发现数据库中已经新生成的表,并且插入的数据存在。
下一篇:
无法打开.msc文件的解决方法