Spring Boot2.x 执行schema.sql初始化数据库

放几个阿里云的优惠链接 代金券 / 高性能服务器2折起 / 高性能服务器5折

配置schema.sql

把需要初始化的sql文件放在项目resources目录下,也可以是其他目录(需要写入绝对路径相对路径不方便部署)
如果是项目resources目录,则路径必须添加classpath:
如果有多个sql文件,可以用逗号分隔
Spring Boot2.x 必须添加 initialization-mode配置才会执行,默认为EMBEDDED也就是嵌入式数据库(H2这种),如果要在mysql下执行需要设置成为always

spring:
  datasource:
	...
    schema: classpath:scheam.sql
    initialization-mode: always

设置schema执行的username和password

如果sql脚本执行的数据库用户名和密码不相同,需要设置单独的属性

spring:
  datasource:
  	...
    schema: classpath:scheam.sql
    initialization-mode: always
    schema-username: root
    schema-password: 1234

data.sql的配置schema的基本相同,只需把schema改为data即可

Spring Boot项目中,`spring.datasource.schema` 和 `spring.datasource.data` 配置用于在应用程序启动时加载数据库的结构(schema)和初始数据。对于H2数据库,这两个属性通常用于自动创建表并填充预定义的数据。 首先,在application.properties或application.yml文件中添加以下配置: **application.properties** ```properties spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE spring.datasource.username=sa spring.datasource.password= spring.datasource.driver-class-name=org.h2.Driver # schema file (XML or SQL) spring.datasource.init-schema=classpath:schema.sql # data file (CSV, YAML, or plain text) spring.datasource.data=classpath:init-data.yaml ``` 在这里: - `spring.datasource.url`: 指定H2内存模式的数据库URL。 - `spring.datasource.init-schema`: 设置初始化数据库结构的SQL文件路径,例如包含创建表的DDL语句。 - `spring.datasource.data`: 设置加载初始数据的文件路径,通常是YAML格式,描述了表中每个数据项应该如何插入。 **schema.sql** 文件示例: ```sql CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50), email VARCHAR(50) UNIQUE NOT NULL ); ``` **init-data.yaml** 文件示例: ```yaml users: - id: 1 name: John Doe email: john.doe@example.com - id: 2 name: Jane Smith email: jane.smith@example.com ``` 启动应用程序时,Spring会先执行`schema.sql`文件中的SQL语句来创建数据库表,然后根据`init-data.yaml`中的内容填充数据。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值