问题描述
我正在使用 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>
解决方法
在某些情况下,使用 JPA 的框架需要指定 JDBC 连接详细信息,包括 JDBC 驱动程序,然后将其传递给 JPA 实现并由它用于访问数据库。 ObjectDB 是一种 JPA 实现,不访问外部数据库,因此不需要或使用 JDBC 驱动程序。
正如问题的评论中所讨论的,一个简单的解决方法是指定一个虚拟的 JDBC 驱动程序,它将被传递给 ObjectDB,然后被忽略。看起来确实很奇怪,但这是要走的路,直到 ObjectDB 实现自己的 JDBC 驱动程序,或者相关框架对 JDBC 驱动程序的请求变得更加灵活。
,您是否尝试过此操作(在 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。