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

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_1datasource:url: jdbc:mysql://127.0.0.1:3306/shanshui?useUnicode=true&characterEncoding=utf-8&serverTimezoneusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driversql:init:# 数据库 ddl 脚本位置schema-locations: classpath:db/schema.sql# 数据库 dml 脚本位置data-locations: classpath:db/data.sql# always:应用每次启动都执行,never:禁用mode: always

相关文章:

  • vue初学随笔
  • web群集--rocky9.2部署zabbix服务端的详细过程
  • 【JavaEE】——线程的安全问题和解决方式
  • Vue3使用hiprint——批次打印条码
  • 【初阶数据结构】详解二叉树 - 树和二叉树(三)(递归的魅力时刻)
  • LeetCode(Python)-贪心算法
  • css五种定位总结
  • 什么是共享旅游卡?解析共享旅游创业项目认知与代理攻略
  • 【RabbitMQ】RabbitMQ 的概念以及使用RabbitMQ编写生产者消费者代码
  • 【python qdrant 向量数据库 完整示例代码】
  • HTML开发指南
  • MT6765/MT6762(R/D/M)/MT6761(MT8766)安卓核心板参数比较_MTK联发科4G智能模块
  • HTML中的表单(超详细)
  • ‌Excel VBA进行间比法设计
  • 【项目案例】物联网比较好的10+练手项目推荐,附项目文档/源码/视频
  • canvas 绘制双线技巧
  • echarts的各种常用效果展示
  • egg(89)--egg之redis的发布和订阅
  • HTML-表单
  • JavaScript 无符号位移运算符 三个大于号 的使用方法
  • javascript数组去重/查找/插入/删除
  • js对象的深浅拷贝
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Magento 1.x 中文订单打印乱码
  • mysql 数据库四种事务隔离级别
  • opencv python Meanshift 和 Camshift
  • Promise面试题2实现异步串行执行
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • webpack4 一点通
  • 安装python包到指定虚拟环境
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 漂亮刷新控件-iOS
  • 前言-如何学习区块链
  • 十年未变!安全,谁之责?(下)
  • 时间复杂度与空间复杂度分析
  • 微信小程序--------语音识别(前端自己也能玩)
  • #QT(智能家居界面-界面切换)
  • #window11设置系统变量#
  • %check_box% in rails :coditions={:has_many , :through}
  • (~_~)
  • (6)STL算法之转换
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (NSDate) 时间 (time )比较
  • (TOJ2804)Even? Odd?
  • (过滤器)Filter和(监听器)listener
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (四)软件性能测试
  • (推荐)叮当——中文语音对话机器人
  • (学习总结)STM32CubeMX HAL库 学习笔记撰写心得
  • (一)Neo4j下载安装以及初次使用
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • **PHP分步表单提交思路(分页表单提交)
  • .apk 成为历史!
  • .env.development、.env.production、.env.staging