PostgreSQL JDBC驱动程序不适用于Heroku数据库连接

时间:2016-08-16 17:37:00

标签: java postgresql heroku jdbc

我有一个尝试连接到Heroku数据库的类:

public class ConnectionFactory {

    public Connection getConnection() {
        System.out.println("Conectando ao banco");
        try {           
            return DriverManager.getConnection("connectionstring", "username", "password");
        } catch (SQLException e) {
            throw new RuntimeException(e);
        }
    }
}

它返回的是:

  

java.lang.RuntimeException:java.sql.SQLException:没有合适的驱动程序   找到了   JDBC:postgres的:// osnvehqhufnxzr:TS3Qt37c_HHbGRNKw3yk7g88fp@ec2-54-225-93-34.compute-1.amazonaws.com:5432 / d39mfq0odt56bv

我已经尝试 postgresql-9.3-1103.jdbc3.jar postgresql-9.4.1209.jre6.jar 在项目的构建路径中。我做错了什么?

3 个答案:

答案 0 :(得分:3)

在JDBC URL中使用postgresql而不是postgres

此外,您需要通过运行以下命令来更改您的数据库密码(因为您公开发布了它):

$ heroku pg:credentials DATABASE --reset

答案 1 :(得分:0)

您需要首先通过类加载器加载驱动程序类:

Class.forName("org.postgresql.Driver");
Connection conn = DriverManager.getConnection(...);

另见:What is the purpose of 'Class.forName("MY_JDBC_DRIVER")'?

答案 2 :(得分:0)

解决方案很简单, System.getenv(" JDBC_DATABASE_URL")在服务器中返回它,并且它正确配置了登录名和密码。

public Connection getConnection() throws URISyntaxException, SQLException 
{   
String urlDB = System.getenv("JDBC_DATABASE_URL");          
return DriverManager.getConnection(urlDB);  
}