【问题标题】:Using Spring-Boot-Starter-Web in combination with ObjectDB结合 ObjectDB 使用 Spring-Boot-Starter-Web
【发布时间】:2021-05-11 05:47:35
【问题描述】:

我正在使用 ObjectDB 在 Spring-Boot 中实现一个程序。为了实际使用 ObjectDB,我遵循了 this approach,它运行良好。

但是,只要我想使用 `spring-boot-starter-web``,我就会收到以下错误:

dataSource 或 dataSourceClassName 或 jdbcUrl 是必需的。在 com.zaxxer.hikari.HikariConfig.validate

我一直在摆弄属性文件中的参数jdbc-url,正如许多帖子中提到的那样。试图排除 Hikari 因为可能 ObjectDB 使用了他自己的连接池机制。但没有任何结果。

关于如何解决此错误的任何想法?

我使用的代码与链接中的代码完全相同。我在 pom 中添加了 Spring-Actuator,如下所示:

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

【问题讨论】:

  • 您可以在需要时尝试指定虚拟 JDBC 详细信息(但可能使用真实的现有 JDBC 驱动程序),看看它是否有效,ObjectDB 会忽略它。
  • 如果我添加 H2 作为依赖项并在 application.properties 中添加 jdb-url 像这样app.datasource=jdbc-url: jdbc:h2:mem:dummydb 它可以工作。但是不使用的时候加H2是不是很奇怪?!

标签: java spring spring-boot objectdb


【解决方案1】:

你试过这个吗(在pom.xml?):

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
     <dependency>
        <groupId>com.objectdb</groupId>
        <artifactId>objectdb</artifactId>
        <version>2.8.4</version>
    </dependency>

并且不要忘记在application.properties中添加数据库连接:

 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 spring.datasource.username=mydbuser
 spring.datasource.password=mydbpass
 spring.datasource.url=jdbc:....

更多详情请见https://www.baeldung.com/the-persistence-layer-with-spring-and-jpa

【讨论】:

  • 是的,这些依赖项在 pom.xml 中。使用 ObjectDB 时,您显然不必在 application.properties 中配置这些属性。但是我已经尝试了用户 ObjectDB 先前评论的建议,并在我的 pom 文件中添加了对 H2 的依赖项,并添加了一个像这样的虚拟 url:app.datasource=jdbc-url: jdbc:h2:mem:dummydb 这样,它可以工作,但我觉得添加有点奇怪不使用H2!?
【解决方案2】:

在某些情况下,使用 JPA 的框架需要指定 JDBC 连接详细信息,包括 JDBC 驱动程序,然后将其传递给 JPA 实现并由其用于访问数据库。 ObjectDB 是一种 JPA 实现,它不访问外部数据库,因此不需要或使用 JDBC 驱动程序。

正如问题的 cmets 中所讨论的,一个简单的解决方法是指定一个虚拟 JDBC 驱动程序,该驱动程序将传递给 ObjectDB,然后被忽略。它看起来确实很奇怪,但在 ObjectDB 实现自己的 JDBC 驱动程序或相关框架在其对 JDBC 驱动程序的请求方面变得更加灵活之前,这是要走的路。

【讨论】:

    猜你喜欢
    • 2019-10-28
    • 2016-01-29
    • 1970-01-01
    • 2017-02-19
    • 1970-01-01
    • 2021-05-10
    • 2020-07-02
    • 2017-03-23
    • 2014-12-29
    相关资源
    最近更新 更多