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', '[email protected]');
INSERT INTO users (name, email) VALUES ('Bob', '[email protected]');

核心文件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
相关推荐
crack_comet6 分钟前
Windows下运行Redis并设置为开机自启的服务
数据库·windows·redis
理***所6 分钟前
湖北理元理律师事务所:法律视角下的债务优化与生活平衡之道
数据库
睡觉待开机22 分钟前
3. 表的操作
数据库·oracle
米粉030531 分钟前
RabbitMQ 在解决数据库高并发问题中的定位和核心机制
数据库·分布式·rabbitmq
oscar99937 分钟前
Spring AI 之工具调用
数据库·人工智能·spring
·心猿意码·43 分钟前
MySQL中SELECT查询的执行顺序
数据库·mysql
gb42152871 小时前
springboot项目下面的单元测试注入的RedisConnectionFactory类redisConnectionFactory值为什么为空呢?
spring boot·后端·单元测试
风景_fengjing1 小时前
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
服务器·数据库·oracle
HGW6892 小时前
基于MyBatis插件实现动态表名解决多环境单一数据库问题
数据库·mybatis