Произошло что-то необычное, что привело к отказу драйвера. База данных Heroku postgresql - PullRequest
0 голосов
/ 01 мая 2020

Я создал базу данных heroku posgre sql и пытаюсь подключить свое приложение Android к этой базе данных. Я использую Android Studio для создания приложения Android. Я использовал следующий код для создания соединения:

try {
    Class.forName("org.postgresql.Driver");
    Connection db = DriverManager.getConnection(dbUrl);
}
catch(Exception e){
    //handles exception
}

Когда я выполняю этот код, я получаю следующую ошибку: Произошло что-то необычное, что привело к отказу драйвера. Пожалуйста, сообщите об этом исключении.

Это драйвер, который я использую: posgre sql -42.2.12

База данных heroku имеет версию 12.2

Android студия имеет java версия 1.8

Я не уверен, что драйвер находится в classpath, и я не уверен, как это проверить. Я добавил драйвер в проект следующим образом: приложение> Создать> Модуль> Импорт пакета .JAR / .AAR (здесь я выбрал драйвер).

Чтобы проверить, зарегистрирован ли драйвер в DriverManager, я использовал этот код :

Enumeration<Driver> drivers = DriverManager.getDrivers();
drivers.nextElement().getClass().getName();

Это дает: org. postgresql .Driver

Чтобы проверить, соответствует ли драйвер URL-адресу, я использовал этот код:

DriverManager.getDriver(dbUrl).getClass().getName();

Это также дает org.posgre sql .Driver, поэтому я думаю, что драйвер зарегистрирован в DriverManager и должен иметь возможность подключаться к базе данных с помощью URL. Я просто не знаю, почему у меня появляется ошибка при попытке подключиться к базе данных.

Так почему же возникает ошибка и как я могу решить эту проблему?

1 Ответ

0 голосов
/ 04 мая 2020

Моим первым предположением будет неверно сформированная строка соединения. Используете ли вы правильный JDB C URL (т.е. он начинается с jdbc:) для dbUrl? Также убедитесь, что вы включили sslmode=require.

Кроме того, имейте в виду, что URL базы данных управляется Heroku и изменится при определенных обстоятельствах. Вы можете прочитать больше об использовании Heroku Postgres за пределами Heroku в этой статье DevCenter .

...