SpringBoot:无法加载驱动程序类:org.postgresql.Driver

n3schb8v  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(3)|浏览(683)

我刚刚创建了一个新的SpringBoot应用程序(Java 11),并试图连接到Postgres数据库。
当我启动SpringBoot应用程序时,尝试连接到数据库时出错。错误报告为Cannot load driver class: org.postgresql.Driver

问题

如何更改下面的配置以使SpringBoot应用程序连接到数据库?

数据库版本

PostgreSQL 12.6 on x86_64-apple-darwin 16.7.0,由Apple LLVM版本8.1.0(clang-802.0.42)编译,64位

pom.xml

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

    <dependency>
        <groupId>org.postgresql</groupId>
        <artifactId>postgresql</artifactId>
    </dependency>

应用.属性

# pims datasource
spring.datasource.url=jdbc:postgresql://localhost:5432/pims
spring.datasource.username=postgres
spring.datasource.password=
spring.datasource.driverClassName=org.postgresql.Driver
#spring.datasource.driver-class-name=org.postgresql.Driver
#spring.jpa.database-platform=postgres

spring.jpa.show-sql=true
spring.datasource.dbcp2.test-while-idle=true
spring.datasource.dbcp2.validation-query=select 1

#spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl
spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy

当我运行@SpringBootApplication类时,SpringBoot开始按预期启动,但得到以下错误。

错误

启动ApplicationContext时出错。要显示条件报告,请在启用“调试”的情况下重新运行应用程序。2021-06-15 11:58:51.770 ERROR 68967 --- [ main] o.s. Boot .SpringApplication
:应用程序运行失败
org.springframework.beans.factory.UnsatisfiedDependencyException:创建在类路径resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]中定义的名为“dataSourceScriptDatabaseInitializer”的bean时出错:通过方法“dataSourceScriptDatabaseInitializer”参数0表示的不满足的依赖项;嵌套异常为org.springframework.beans.factory.BeanCreationException:创建在类路径资源[org/springframework/ Boot /autoconigure/jdbc/DataSourceConfiguration$Hikari.class]中定义的名为'dataSource'的bean时出错:通过工厂方法示例化Bean失败;嵌套异常为org.springframework.beans.BeanInstantiationException:示例化[com.zaxxer.hikari.HikariDataSource]失败:工厂方法“dataSource”引发异常;嵌套异常为java.lang.IllegalStateException:无法加载驱动程序类:org.postgresql.Driver
如果我删除以下条目(即不要在application.properties中定义驱动程序,只需要pom依赖项):

spring.datasource.driverClassName=org.postgresql.Driver

然后我得到了以下错误:

Failed to load driver class org.postgresql.Driver in either of HikariConfig class loader or Thread context classloader
m2xkgtsf

m2xkgtsf1#

当我扩展外部依赖树时,我没有找到任何postgressql的jar。重新导入maven依赖项后,它被正确添加,问题消失了。现在好了。

hm2xizp9

hm2xizp92#

我也遇到过同样的问题。我看了IntellIJ > File > Project Structure > Project Settings > Modules > My Module > Dependencies,发现没有org.postgresql:postgresql:42.2.23。
因此,我在pom.xml上点击了Right click,然后说> Maven > Reload Project。
在那之后就奏效了

jtw3ybtb

jtw3ybtb3#

您不需要任何特定的配置来连接数据库,除非您的存储库和实体包不是从另一个依赖项中提取的。
我建议你检查你的计算机和maven仓库之间的连接。你应该想念你的博士后依赖性。
(You也会尝试提供特定版本的postgresql工件)

相关问题