我已经创建了一个heroku posgresql数据库,我试图将我的Android应用程序连接到这个数据库。我使用Android Studio制作Android应用程序。我使用以下代码创建连接:
try {
Class.forName("org.postgresql.Driver");
Connection db = DriverManager.getConnection(dbUrl);
}
catch(Exception e){
//handles exception
}
字符串
当我执行此代码时,我得到以下错误:发生了一些不寻常的事情,导致驱动程序失败。请报告此异常。
这是我使用的驱动程序:用途:posgresql-42.2.12
Heroku数据库的版本为12.2
Android Studio有Java 1.8版本
我不确定驱动程序是否在类路径中,也不确定如何检查。我以以下方式将驱动程序添加到项目中:app > New > Module > Import . Other/.AAR Package(在这里我选择了驱动程序)。
为了检查驱动程序是否在DriverManager中注册,我使用了以下代码:
Enumeration<Driver> drivers = DriverManager.getDrivers();
drivers.nextElement().getClass().getName();
型
这将给出:org.postgresql.Driver
为了检查驱动程序是否理解URL,我使用了以下代码:
DriverManager.getDriver(dbUrl).getClass().getName();
型
这也给了org.posgresql.Driver,所以我认为驱动程序已注册到DriverManager,应该能够使用URL连接到数据库。我只是真的不知道为什么我总是得到一个错误,当我尝试连接到数据库。
那么为什么会出现错误,如何解决这个问题呢?
1条答案
按热度按时间41zrol4v1#
我的第一个猜测是一个格式错误的连接字符串。您是否使用了正确的JDBC URL(即以
jdbc:
开头)用于dbUrl
?还要确保您包括sslmode=require
。此外,请注意,数据库URL由Heroku管理,在某些情况下会发生变化。您可以从Heroku in this DevCenter article外部阅读更多关于使用Heroku Postgres的信息。