我已经创建了一个heroku posgresql数据库,并试图将我的Android应用程序连接到这个数据库。我使用Android Studio来制作Android应用程序。我使用了以下代码来创建连接。
try {
Class.forName("org.postgresql.Driver");
Connection db = DriverManager.getConnection(dbUrl);
}
catch(Exception e){
//handles exception
}
当我执行这段代码时,我得到了以下错误: Something unusual has occurred tot cause the driver to fail. Please report this exception. 请报告这个异常。
这是我使用的驱动程序:posgresql-42.2.12。
heroku数据库的版本是12.2
Android studio的java版本为1.8
我不确定驱动是否在classpath中,我也不知道如何检查。我是这样把驱动添加到项目中的:app > New > Module > Import .JAR.AAR Package(这里我选择了驱动)。
为了检查驱动程序是否在DriverManager中注册,我使用了这段代码。
Enumeration<Driver> drivers = DriverManager.getDrivers();
drivers.nextElement().getClass().getName();
这给出了:org.postgresql.Driver。
为了检查Driver是否理解URL,我使用了这段代码。
DriverManager.getDriver(dbUrl).getClass().getName();
这也给出了org.posgresql.Driver 所以我认为Driver已经注册到了DriverManager 应该可以使用URL连接到数据库。只是我真的不知道为什么当我尝试与数据库连接时,我一直得到一个错误。
那么,为什么会出现错误,我如何解决这个问题?
我的第一个猜测是连接字符串错误。你是否使用了一个正确的JDBC URL(即它以 jdbc:
)为 dbUrl
? 还有 确保你包括 sslmode=require
.
此外,请注意,数据库的URL是由Heroku管理的,在某些情况下会改变。您可以阅读更多关于在Heroku之外使用Heroku Postgres的信息。在这篇DevCenter文章中.