Springboot项目启动时自动执行sql脚本文件

本文介绍如何在Spring Boot项目中配置application.properties,通过设置spring.datasource.initialization-mode为always,以及指定schema.sql和data.sql路径,实现启动时自动执行DDL和DML语句。

需要在application.properties文件中加上以下配置

#需要加上这句,否则不会自动执行sql文件
spring.datasource.initialization-mode=always
# schema.sql中一般存放的是建表语句DDL
spring.datasource.schema = classpath:schema.sql
# data.sql中一般存放的是需要插入更新等sql语句DML
spring.datasource.data =  classpath:data.sql

同时在主工程的resources文件夹下需要准备好schema.sql和data.sql两个文件。

做好上面的准备工作即可完成。

### 如何在 IntelliJ IDEA 中配置 Spring Boot 项目启动时运行 SQL 脚本 为了实现 Spring Boot 项目启动时自动执行 SQL 脚本的功能,可以通过以下方式完成: #### 配置 `application.properties` 或 `application.yml` 通过设置 `spring.datasource.sql-script-encoding` 和指定初始化脚本路径来加载 SQL 文件。以下是具体的属性说明[^1]: ```properties # 数据库驱动和其他连接参数省略... spring.datasource.url=jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=password # 启动时运行的 SQL 脚本文件位置 spring.datasource.schema=classpath:schema.sql spring.datasource.data=classpath:data.sql # 设置编码防止中文乱码等问题 spring.datasource.sql-script-encoding=UTF-8 ``` 如果使用的是 YAML 格式的配置,则可以这样写: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/your_database?useSSL=false&serverTimezone=UTC username: root password: password schema: classpath:schema.sql data: classpath:data.sql sql-script-encoding: UTF-8 ``` 上述配置中的 `schema.sql` 是用于创建表结构或其他数据库对象的脚本;而 `data.sql` 则通常用来填充初始数据。 #### 使用 Flyway 或 Liquibase 进行更复杂的迁移管理 对于较大型的应用程序或者需要版本化管理的数据变更操作,推荐采用专门工具如 **Flyway** 或者 **Liquibase** 来处理数据库迁移工作流[^2]。下面是一个简单的例子展示如何集成 Flyway: ##### 添加依赖到项目的 build.gradle (Gradle) ```gradle dependencies { implementation 'org.flywaydb:flyway-core' } ``` ##### 创建资源目录并放置 SQL 文件 按照约定好的命名规则,在 `src/main/resources/db/migration` 下新建 SQL 文件,例如命名为 V1__Initial_setup.sql : ```sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), email VARCHAR(100) ); INSERT INTO users(name, email) VALUES ('John Doe', 'john@example.com'); ``` 当应用程序动的时候,Flyway 将会检测该目录下的所有脚本,并按顺序依次应用它们至目标数据库上。 #### 总结 无论是简单场景还是复杂需求下都有相应的解决方案支持开发者轻松达成目的——即让自己的 Spring Boot 应用能够在每次部署之前先准备好所需的环境状态。以上方法均已在实际开发过程中得到广泛应用验证有效可靠。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值