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
相关推荐
前方一片光明19 小时前
SQL SERVER——生成sql:删除所有log表中,user_name是某用户的数据
数据库·sql·oracle
Gauss松鼠会20 小时前
【GaussDB】在duckdb中查询GaussDB的数据
数据库·sql·database·gaussdb
2501_9167665421 小时前
【Springboot】数据层开发-数据源自动管理
java·spring boot·后端
虹科网络安全21 小时前
艾体宝洞察 | Redis vs ElastiCache:哪个更具成本效益?
数据库·redis·缓存
自在极意功。21 小时前
MyBatis 动态 SQL 详解:从基础到进阶实战
java·数据库·mybatis·动态sql
老邓计算机毕设21 小时前
SSM校园订餐系统7z0dm(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·菜品管理系统·ssm 框架·ssm 框架开发·校园线上订餐平台
sxlishaobin21 小时前
MySQL- explain
数据库·mysql
软件管理系统21 小时前
基于Spring Boot的便民维修管理系统
java·spring boot·后端
〝七夜5691 天前
SQL之sql注入
sql
曹牧1 天前
Oracle:判断一个字符串出现次数
数据库·oracle