为什么我得到java.sql.SQLException:当URL正确且存在驱动程序时,找不到合适的驱动程序?

时间:2019-03-22 06:37:10

标签: java postgresql jdbc

我正在尝试以下代码来在线连接托管在ElephantSQL上的数据库。

private static Connection getConnection() {

        try {
            Class.forName("org.postgresql.Driver");
        }
        catch (ClassNotFoundException e) {
            System.out.println("Jar not found "+e.getMessage());
        }

        //dbUrl is given this way
        String dbUrl = "jdbc:postgres://database:password@manny.db.elephantsql.com:5432/database";

        String username = "database";
        String password = "password";

        try {
            return DriverManager.getConnection(dbUrl,username,password);
        } catch (SQLException e) {
            e.printStackTrace();
        }

        return null;
    }

但是我遇到以下错误:

  

java.sql.SQLException:未找到

的合适驱动程序

我从这里发现的类似问题中尝试了所有方法 Question 1Question 2

但是没有任何效果,我被困住了。我将不胜感激。

2 个答案:

答案 0 :(得分:1)

As documented in the manual Postgres的URL的结构必须如下:

jdbc:postgresql://host:port/database

前缀jdbc:postgres必须为jdbc:postgresql,URL中的部分database:password@manny.db.elephantsql.com:5432是错误的。很难说出主机名的确切含义,但是我想您需要使用:

jdbc:postgresql://manny.db.elephantsql.com:5432/database

答案 1 :(得分:-1)

似乎您的驱动程序jar文件不在classpath中。

其中一个选项是将驱动程序jar文件放在您项目的lib目录中,然后将jar文件添加到classpath(或eclipse中的buildpath)

您可以从给定的URL下载驱动程序文件 https://jdbc.postgresql.org/download.html