spring引导:配置h2jdbcurl

ma8fv8wu  于 2021-07-05  发布在  Java
关注(0)|答案(1)|浏览(277)

spring引导配置中的内存数据库工作正常,代码如下。但是这个url没有从yaml配置中获取。尽管h2控制台已启用
在日志中,url正在打印为内存数据库。
如何将jdbc url从内存更改为文件。
日志文件
2020-09-03 14:22:42.595[rmi tcp connection(2)-10.44.33.51]调试o.s.jdbc.datasource.datasourceutils-从数据源获取jdbc连接
2020-09-03 14:22:42.595[rmi tcp连接(2)-10.44.33.51]调试o.s.j.d.simpledriverdatasource-创建新的jdbc驱动程序连接到[jdbc:h2:mem:testdb;模式=oracle;db\u close\u delay=-1;db\u close\u on\u 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
mpgws1up

mpgws1up1#

不定义 dataSource 豆子。配置 datasource 通过属性文件。如果你想执行 DDL 和/或 DML sql脚本当应用程序启动时,您可以执行以下操作:

spring:
  datasource:
    url: jdbc:h2:file:C:/db/test
    username: test
    password: password
    schema: classpath:sql/Create-table.sql
    data: classpath:sql/fill-table.sql

默认情况下,spring引导查找文件 schema.sql 以及 data.sql 在应用程序类路径的根目录中(例如。 src/main/resources/schema.sql )但可以在属性中重写此行为 spiring.datasource.schema 以及 spring.datasource.data 就像上面的代码示例一样。

相关问题