嘿家伙我有一个带PostgreSQL数据库的heroku网络应用程序。正如你在图片中看到的那样设置DATABASE_URL
:
但出于某种原因,当我尝试访问环境变量以连接到数据库时,我得到一个NullPointerException
,因为显然DATABASE_URL
不存在:
private static Connection getConnection() throws URISyntaxException, SQLException {
URI dbUri = new URI(System.getenv("DATABASE_URL"));
String username = dbUri.getUserInfo().split(":")[0];
String password = dbUri.getUserInfo().split(":")[1];
String dbUrl = "jdbc:postgresql://" + dbUri.getHost() + ':' + dbUri.getPort() + dbUri.getPath();
return DriverManager.getConnection(dbUrl, username, password);
}
这里发生了什么?我该如何解决?
Heroku配置变量是environment variables。它们被定义并应用于特定环境,在这种情况下是应用程序在Heroku上运行的环境。它们对其他环境没有影响,例如坐在你面前的机器上的环境。
你可以在当地configure NetBeans to use an environment variable for your project。这里DATABASE_URL
的值可能与Heroku上的值不同,只需确保将其设置为有效的PostgreSQL URL值即可。