当前位置: 首页 > 知识库问答 >
问题:

Spring Boot:配置h2 jdbc url

何玺
2023-03-14

Spring boot配置中的内存数据库工作正常,代码如下。但是url没有从YAML配置中获取。尽管h2控制台已启用

在日志中,url正在打印为内存数据库。

  1. 如何将jdbc url从内存更改为文件

日志文件

2020-09-03 14:22:42.595[RMI TCP连接(2)-10.44.33.51]DEBUGo.s.jdbc.datasource.DataSourceUtils-从DataSource获取JDBC连接

2020-09-03 14:22:42.595[RMI TCP连接(2)-10.44.33.51]DEBUG o. s. j. d. SimpleDriverDataSource-创建新的JDBC驱动程序连接到[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个答案

刘凡
2023-03-14

不要定义dataSourcebean。通过属性文件配置数据源。如果您想在应用程序启动时执行DDL和/或DMLsql脚本,您可以执行以下操作:

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 Boot查找文件<代码>架构。sql和数据。应用程序类路径根目录中的sql(例如,src/main/resources/schema.sql),但您可以在属性spiring中重写此行为。数据源。架构和spring。数据源。数据就像上面的代码示例一样。

 类似资料:
  • <dependencyManagement> <dependencies> <dependency> <!--Import dependency management from SpringBoot--> <groupId>org.springframework.boot</groupId>

  • 我有教育问题: 存在具有windows server 2003(AD)的虚拟机,其中包含用户及其密码。已建立与机器的连接(ip:192.168.56.101:389)。 Web应用程序的目的是使用户能够在AD中更改他的密码。 问题:无法配置到windws server 2003的连接。 我从这个教程开始https://spring.io/guides/gs/authenticating-ldap/

  • 我尝试将springboot应用程序配置为每天登录一个文件,因此我将logback.xml配置为: 所以当我尝试运行我的应用程序时,我得到了这个错误:

  • 本文向大家介绍详解SpringBoot Schedule配置,包括了详解SpringBoot Schedule配置的使用技巧和注意事项,需要的朋友参考一下 1. 定时任务实现方式 定时任务实现方式: Java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少,这篇文

  • 我在SpringBoot应用程序中实现了多语言,在完成以下配置后,我得到的属性文件无法加载 文件夹名称 src/main/resources/i18n/messages 属性文件名 messages_us.properties 在应用程序主类 内部控制器 标题 接受-语言:我们 我明白了 [36mo.s.c.s.ResourceBundleMessageSource[0;39m[2m:[0;39m

  • 我知道在DispatcherServlet之外使用请求范围bean需要一些配置,并且已经阅读了http://docs.spring.io/spring/docs/4.0.x/spring-framework-reference/html/beans.html#beans-factory-scopes-oth,但是还没有成功: 对于Servlet3.0+,这可以通过WebApplicationIni

  • 4.1 根据条件的自动配置 @conditional是基于条件的自动配置,一般配合Condition接口一起使用,只有接口实现类返回true,才装配,否则不装配. 用实现了Condition接口的类传入@Conditional中 @Conditional可以标记在配置类的方法中,也可以标记在配置类上.标记的位置不同,作用域不同. @Conditional可以传入多个实现了condition接口的类

  • 在springboot应用程序中,我有一个jar,然后是一个子目录config with application。属性,applicationContext。xml和log4j。。。属性文件。 我正在尝试外部化log4j配置。application.properties是这样外部化的。 但是,当springboot运行时,它使用jar文件中的log4j配置文件。通过使用-Dlog4j.debug选