java Spring引导:配置h2 jdbc url
spring引导配置中的内存数据库工作正常,代码如下。但url并不是从YAML配置中获取的。尽管启用了h2控制台
在日志中,url打印为内存数据库
- 如何将jdbc url从内存更改为文件李>
日志文件
2020-09-03 14:22:42.595 [RMI TCP Connection(2)-10.44.33.51] DEBUG o.s.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
2020-09-03 14:22:42.595 [RMI TCP Connection(2)-10.44.33.51] DEBUG o.s.j.d.SimpleDriverDataSource - Creating new JDBC Driver Connection to [jdbc:h2:mem:testdb;MODE=Oracle;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=false]
@Configuration
public class DataSourceConfiguration {
@Bean
@Primary
public DataSource dataSource() {
return new EmbeddedDatabaseBuilder()
.setType(EmbeddedDatabaseType.H2)
.setName("testdb;MODE=Oracle")
.addScript("classpath:sql/Create-table.sql")
.build();
}
}
YAML配置
spring:
h2:
console:
enabled: true
path: /h2
datasource:
url: jdbc:h2:file:C:/db/test
username: test
password: password
driverClassName: org.h2.Driver
# 1 楼答案
不要定义
dataSource
bean。通过属性文件配置datasource
。如果要在应用程序启动时执行DDL
和/或DML
sql脚本,可以执行以下操作:默认情况下,Spring Boot会在应用程序类路径的根目录(例如} 和{} 中重写此行为,就像上面的代码示例一样
src/main/resources/schema.sql
)中查找文件schema.sql
和data.sql
,但您可以在属性{