【问题标题】:Java: connecting to psql database throws an error (ClassNotFoundException) [duplicate]Java:连接到 psql 数据库会引发错误(ClassNotFoundException)[重复]
【发布时间】:2019-05-15 22:38:46
【问题描述】:

我是 Java 新手,我正在尝试连接到我的本地 PSql 数据库但没有成功,下面是代码和错误的详细信息。

我有 2 个文件:DbContract.java 和 TestConnection.java,我正在使用 Eclipse。

DbContract.java

package dbcontract.db;

public interface DbContract {

    public static final String HOST = "jdbc:postgresql://localhost:5432/";
    public static final String DB_NAME = "db_notespesa";
    public static final String USERNAME = "postgres";
    public static final String PASSWORD = "";
}

TestConnection.java

package dbcontract;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import dbcontract.db.DbContract;

public class TestConnection {

    public static void main(String[] args) {
        try {
            Class.forName("org.postgresql.Driver");
            Connection conn = DriverManager.getConnection(
                    DbContract.HOST+DbContract.DB_NAME,
                    DbContract.USERNAME,
                    DbContract.PASSWORD);
            System.out.println("DB connected");

        } catch (ClassNotFoundException | SQLException e) {
            e.printStackTrace();
        }
    }
}

错误:

java.lang.ClassNotFoundException: org.postgresql.Driver
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:315)
    at TestConnection.main(TestConnection.java:13)

【问题讨论】:

  • 在问题中您指出使用了不同的 IDE。
  • 这并不真正相关:该问题可能被标记为 netbeans,其中没有任何内容与 netbeans 相关。这是任何 Java 开发人员都应该能够处理的事情,除非您以前从未使用过任何库并且一直只使用 Java SE 中包含的类。
  • 这是我的情况:我今天第一次使用 Java :)
  • 不幸的是,堆栈溢出并不是真正了解一种语言或 IDE 的正确位置。尝试 google 一些关于 Eclipse 的介绍性教程或文档
  • 我会的,谢谢!

标签: java database database-connection psql


【解决方案1】:

您需要添加 Postgress 驱动程序的依赖项,如错误说明,如果您使用的是 maven,只需将其添加到 pom.xml :

    <`<!-- https://mvnrepository.com/artifact/org.postgresql/postgresql -->
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>42.2.5</version>
</dependency>

更新了 Mark 在评论中提到的版本,这里是 maven repo 上所有版本的链接: https://mvnrepository.com/artifact/org.postgresql/postgresql

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-15
  • 2021-03-10
  • 2011-06-23
  • 1970-01-01
  • 2014-06-20
  • 1970-01-01
相关资源
最近更新 更多