Spring Boot,在应用程序启动后执行某些 SQL 语句

在 Spring Boot 中,如果你想在应用程序启动后执行某些 SQL 语句,可以利用 spring.sql.init 属性来配置初始化脚本。这通常用于在应用启动时创建数据库表、索引、视图等,或者填充默认数据。

data-locationsschema-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
相关推荐
zandy10113 小时前
衡石科技 NL2Metrics 技术深度解析(2026):ChatBI 准确度破局的关键路径
数据库·科技·oracle
Elastic 中国社区官方博客3 小时前
Elasticsearch 如何通过 synthetic _id 和 Bloom filters 将时序存储降低 34%
大数据·数据库·elasticsearch·搜索引擎·serverless·全文检索·时序数据库
一只鹿鹿鹿3 小时前
信息化项目管理规范(参考Word文件)
java·大数据·运维·开发语言·数据库
夕除3 小时前
实战--2
java·spring boot·spring
这个DBA有点耶3 小时前
多模融合数据库深度解析:关系、文档、向量、图如何统一?
数据库·自然语言处理·aigc·dba·改行学it
数据仓库_晨曦3 小时前
【无标题】
大数据·sql·spark
anew___3 小时前
《数据库原理》精要解读(三)—— SQL:与数据库对话的艺术
数据库·sql·oracle
KaiwuDB3 小时前
KWDB 3.2.0 版本发布,数据管理查询增强,安装部署体验全面升级
数据库
暴躁小师兄数据学院3 小时前
【AI大数据工程师特训笔记】第10讲:数据库用户、权限管理、数据库约束
大数据·数据库·笔记·sql·postgresql