【问题标题】:Error while trying to access Postgresql via java / spring尝试通过 java / spring 访问 Postgresql 时出错
【发布时间】:2016-06-16 12:05:29
【问题描述】:

在尝试与 PostgreSQL 通信时遇到错误。

我得到的错误是Could not load requested class : org.postgresql.Driver

我得到的另一个错误是java.sql.SQLException: Unable to load class: org.postgresql.Driver from ClassLoader:sun.misc.Launcher$AppClassLoader

我的 application.properties 文件如下所示:

spring.ds_items.driverClassName=org.postgresql.Driver 
spring.ds_items.url=jdbc:postgresql://localhost:5432/Dummy
spring.ds_items.username=root
spring.ds_items.password=root 
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=create

spring.ds_users.driverClassName=org.postgresql.Driver 
spring.ds_users.url=jdbc:postgresql://localhost:5432/Dummy2 
spring.ds_users.username=root
spring.ds_users.password=root
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.jpa.show-sql=false
spring.jpa.hibernate.ddl-auto=create

而我的 build.gradle 文件依赖项看起来像这样,

dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-jdbc')
    compile('org.springframework.boot:spring-boot-starter-web')
    runtime('mysql:mysql-connector-java:5.1.38')
    sql ('org.postgresql:postgresql-9.1-901-1.jdbc4')
    testCompile('org.springframework.boot:spring-boot-starter-test') 
}

我做错了什么,我该如何解决?

【问题讨论】:

  • 添加包含驱动的jar...
  • 如果您使用的是 Maven,请将 Postgres 驱动程序添加到您的依赖项中
  • 我正在使用 Gradle !!
  • 你确定有postgresql-9.1-901-1.jdbc4 依赖吗?最新的 9.1 版本是 903 而不是 901(为什么要使用这么过时的驱动程序?)

标签: java postgresql spring-boot


【解决方案1】:

添加依赖:

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

【讨论】:

    【解决方案2】:

    确保您的任何应用程序属性都没有尾随 空格

    我在一个新项目中遇到了这个问题,并且收到了完全相同的错误。我拉了几个小时的头发,直到我意识到这个简单的错误。


    如果这不起作用,那么也许在 GitHub 上分享一个示例项目?

    【讨论】:

      【解决方案3】:

      您的项目是否包含适当的驱动程序.jar 文件?
      在这里检查:

      https://jdbc.postgresql.org/download.html

      它应该放在应用程序的 lib/ 目录中,可能在 WEB-INF/lib 中。

      【讨论】:

      • 抱歉,出于某种原因,我假设您正在运行 Tomcat 服务器。它应该放在应用程序的 lib 文件夹中,可能在 WEB-INF/lib 或其他地方。 .jar 通常放在您的应用程序中的任何位置。
      • 是的,我也这样做了,但它仍然说(org.hibernate.tool.hbm2ddl.SchemaExport:HHH000231:模式导出不成功)和(无法加载请求的类:org.postgresql.Driver)
      • 您能告诉我您添加 .jar 的路径以及您使用的版本吗?确定权限OK就可以了?如果您使用的是 Mac/Linux 发行版,请运行 sudo chmod 777 postgresql_file_name_here.jar 以确保可以访问它。
      • 我编辑了我的代码,看看依赖关系,我在那里做错了吗?
      • 我不这么认为 - 您下载的 postgresql 驱动程序与 sql 依赖项下列出的版本匹配?
      猜你喜欢
      • 1970-01-01
      • 2020-02-24
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      • 2012-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多