当前位置: 首页 > article >正文

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


http://www.kler.cn/a/317810.html

相关文章:

  • Vue3.js - 一文看懂Vuex
  • Cyberchef配合Wireshark提取并解析HTTP/TLS流量数据包中的文件
  • HTTP常见的请求头有哪些?都有什么作用?在 Web 应用中使用这些请求头?
  • 2024年11月13日
  • 读数据质量管理:数据可靠性与数据质量问题解决之道03数据目录
  • Springboot 启动端口占用如何解决
  • python保留小数
  • 计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-18
  • 快手B端商业化技术探索:基于LLM构建智能RAG与Agent平台
  • spring 注解 - @PostConstruct - 用于初始化工作
  • mysql学习教程,从入门到精通,SQL 删除表(DROP TABLE 语句)(20)
  • Android webview拦截H5的接口请求并返回处理好的数据
  • koa框架之间的websocket通信
  • Spring IOC容器Bean对象管理-Java Config方式
  • 设计模式推荐网站
  • Linux文件I/O
  • 设计模式——对象池模式
  • JavaWeb--小白笔记07-2:超链接以及servlet对表单数据的完整处理
  • QT| QT配置CUDA
  • 9.23工作笔记
  • C++之STL—List 链表
  • 探索未来科技的无限可能:IT领域的深度剖析与趋势展望
  • Java实现零工市场数字化
  • 利士策分享,如何制定合理的工作时长:寻找生活与工作的平衡点
  • 【论文阅读】PolarNet: 3D Point Clouds for Language-Guided Robotic Manipulation
  • ES6 — Promise基础用法(resolve、reject、then、catch,all)