与Java JDBC连接Postgres的 - 的SQLException

问题描述 投票:0回答:2

我试图连接到一个Postgres数据库。我真的很新的到,并已经阅读在论坛上一个帖子。但我没有管理。

public void connect() {
    //Connection con = null;
    try {
        Class.forName("org.postgresql.Driver");

        Properties props = new Properties();
        props.setProperty("user", user);
        props.setProperty("password", password);
        props.setProperty("ssl","true");
        Connection conn = DriverManager.getConnection(url, props);
        //String url = "jdbc:postgresql://localhost/test?user=fred&password=secret&ssl=true";
        //Connection conn = DriverManager.getConnection(url);
        System.out.println("Erfolgreich verbunden!");
    }
    catch (Exception  e){
        e.printStackTrace();
        System.err.println(e.getClass().getName()+": "+e.getMessage());
        System.exit(0);
    }
}

编辑:我更新了我的代码。该数据库将被部署到Heroku的。它引发错误:

java.sql.SQLException: No suitable driver found for jdbc:postgres://vuqmbekwlgohkw:******
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:702)
at java.sql/java.sql.DriverManager.getConnection(DriverManager.java:189)
at com.company.Database.connect(Database.java:20) p
at com.company.Main.start(Main.java:16)
at com.company.Main.main(Main.java:25)
java.sql.SQLException: No suitable driver found for jdbc:postgres://vuqmbekwlgohkw:***************
java postgresql jdbc
2个回答
0
投票

我相信,你的问题是,你的连接网址格式不正确。

DriverManager.getConnection抛出的SQLException,该消息包括传递给函数的精确url值。在你的情况,看起来像jdbc:postgres://vuqmbekwlgohkw:******

但很明显,这是不是你正在使用的URL。你已经用星号代替URL的一部分。这表明,你认为该URL的格式为:

jdbc:postgres://username:password@host:port/dbname

这似乎是什么的Heroku在DATABASE_URL环境变量提供。您正在使用星号来阻止我们看到密码。

然而,它看起来像PostgreSQL的JDBC驱动程序不接受这种格式的URL。当我想,我也得到了“没有合适的驱动程序”的错误。 According to the documentation,URL的格式为:

jdbc:postgres://host:port/database

有些部分是可选的,但司机似乎不支持该URL把用户名或密码。

我可以通过使用文档中描述的URL格式,并使用连接属性设置用户名和密码连接到AWS PostgreSQL实例。


0
投票

你说你是新的,所以我与痛苦明显要开始,你有你的类路径中的驱动程序?

这是您添加到您的项目罐子,你可以从https://jdbc.postgresql.org/下载

否则,我有一个为我工作,但我不完全使用JDBC,那是一个春天启动项目的URL的一个例子:

jdbc:postgresql://ec2-174-99-88-88.compute-1.amazonaws.com:5432/asdfasdfsadf?sslmode=require

没有端口号,在你的评论网址,而不是所有的参数都可能得到支持,像威利斯指出。

© www.soinside.com 2019 - 2024. All rights reserved.