PostgreSQL驱动问题

时间:2019-02-27 10:10:16

标签: java postgresql jdbc driver

这个问题已经被问过很多次了,但是我没有找到合适的答案。

简而言之:“找不到适用于jdbc:postgresql:// localhost:5432 / Ecole的驱动程序”

我的代码:

import java.sql.*;

public class Connect {
    public static void main(String[] args) {
        try {
            Class.forName("org.postgresql.Driver");
            System.out.println("Driver O.K.");

            String url = "jdbc:postgresql://localhost:5432/Ecole";
            String user = "postgres";
            String passwd = "root";

            Connection conn = DriverManager.getConnection(url, user, passwd);
            System.out.println("Connexion effective !");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

堆栈错误:

java.lang.ClassNotFoundException: org.postgresql.Driver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at Connect.main(Connect.java:6)

Process finished with exit code 0

我诊断出问题很可能是由于我的程序在错误的位置寻找驱动程序。 以下是导致我得出此结论的以下原因:

在IntelIJ上成功连接(在Datagrip上也成功) enter image description here

IntelIJ上最新的驱动程序(在Datagrip上也有效),并且驱动程序的类名正确,如我的主文件中所述 enter image description here

数据库在pgAdmin上处于活动状态 enter image description here

Datagrip做得很好 enter image description here

如上所述,所有这些使我得出一个结论,即我的程序很可能在错误的位置寻找驱动程序(纠正我,我错了)。 所以呢 ?从这种情况下我们应该怎么做?非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好,所以确实我不得不将.jar文件添加到依赖项中。

要这样做:

  1. 通过以下链接下载postgresql .jar文件: https://jdbc.postgresql.org/download.html

  2. 将其放置在计算机中的某个位置,建议将其放置在您的jre / lib中,如下所示: C:\ Program Files \ Java \ jdk1.8.0_181 \ jre \ lib

  3. 将其放在您的运行时类路径中,如下所示。 (我花了很长时间才将其整理出来,所以我将所有内容逐步放置)。

enter image description here

enter image description here

enter image description here

enter image description here

enter image description here