我有一个尝试连接到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 在项目的构建路径中。我做错了什么?
答案 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);
}