在 Spring Boot 中,如果你想在应用程序启动后执行某些 SQL 语句,可以利用 spring.sql.init 属性来配置初始化脚本。这通常用于在应用启动时创建数据库表、索引、视图等,或者填充默认数据。data-locations 和 schema-locations 指定了 SQL 脚本的位置。这些脚本应该位于类路径中指定的目录下。例如:
src/main/resources/db/schema.sql 用于创建数据库结构。src/main/resources/db/data.sql 用于插入初始数据。在 schema.sql 中,你可以编写用于创建表的 SQL 语句:
- -- schema.sql 文件内容
- CREATE TABLE IF NOT EXISTS users (
- id INT AUTO_INCREMENT,
- name VARCHAR(100),
- email VARCHAR(150),
- PRIMARY KEY (id)
- );
在 data.sql 中,你可以插入一些初始数据:
- -- data.sql 文件内容
- INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
- INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
核心文件yml文件修改
- spring:
- application:
- name: demo_1
-
- datasource:
- url: jdbc:mysql://127.0.0.1:3306/shanshui?useUnicode=true&characterEncoding=utf-8&serverTimezone
- username: root
- password: 123456
- driver-class-name: com.mysql.cj.jdbc.Driver
-
- sql:
- init:
- # 数据库 ddl 脚本位置
- schema-locations: classpath:db/schema.sql
- # 数据库 dml 脚本位置
- data-locations: classpath:db/data.sql
- # always:应用每次启动都执行,never:禁用
- mode: always