Ответ 1
Вы должны поместить пакет jar в папку lib (WebContent-WEB-INF-lib) и щелкнуть правой кнопкой мыши по пути сборки пакета jar-add для создания пути
Я запускаю Eclipse в Windows.
Следуя этот учебник Я загрузил JDBC4, добавил его в мой путь сборки, используя Project > Properties > add External JAR, просматривал файл, он работал (.classpath
файл показывает правильный путь к lib).
Пакет появляется в папке "Связанные библиотеки", поэтому я продолжаю руководство.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
....
public void open ()
{
try {
Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
conn = DriverManager.getConnection(url, username, password);
} catch (SQLException e) {
e.printStackTrace();
}
}
Я думаю, что это будет так просто, но я получаю эту длинную длинную трассировку стека, начиная с
java.lang.ClassNotFoundException: org.postgresql.Driver
(я могу предоставить больше, если нужно)
Я попробовал include org.postgresql.*;
, но это тоже не помогло. Я также пробовал JDBC3, но там не повезло.
Я посмотрел на драйвер JDBC PostgreSQL с Android, который дал смутный ответ, говоря, что мне будет лучше просто использовать HTTP + JSON. Который я никогда не использовал.
Я новичок в Android, postgresql, веб-разработке, поэтому был бы оценен простой ответ.
Вы должны поместить пакет jar в папку lib (WebContent-WEB-INF-lib) и щелкнуть правой кнопкой мыши по пути сборки пакета jar-add для создания пути
Вам нужно добавить драйвер PostgreSQL JDBC в свой проект, как указано в Mvnrepository.
Grandle
// http://mvnrepository.com/artifact/postgresql/postgresql
compile group: 'postgresql', name: 'postgresql', version: '9.0-801.jdbc4'
Maven
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.0-801.jdbc4</version>
</dependency>
Вы также можете download JAR и импортировать в свой проект вручную.
Это проблема CLASSPATH; драйвер PostgreSQL JDBC недоступен, когда загрузчик классов пытается загрузить его. Вам нужно добавить его в свой CLASSPATH правильно.
Если он работает в Eclipse, это связано с тем, что добавление JAR в путь сборки добавляет его в CLASSPATH. Вы должны понимать, как CLASSPATH работает без обучающих колес Eclipse, чтобы помочь вам.
Загрузка и добавление JAR файла JDBC к встроенному пути используемого инструмента может быть временным решением, так как ни одно из вышеперечисленных решений не разработано в моем случае.
Предположим, что ваши зависимости настроены правильно (см. libs
каталог в Android SDK версии 17 или выше, как указано в комментарии), вы должны иметь возможность заставить драйвер 9.2 работать, зарегистрировав его явно с помощью диспетчера драйверов.
Вместо:
Class.forName("org.postgresql.Driver");
Использование:
DriverManager.register(new org.postgresql.Driver());
(Я также пытался использовать банку 9.3-1100-jdbc41, но это не сработало.)
Обратите внимание, что, поскольку объяснил Крейг Рингер в ответ на дублированный вопрос, использование JDBC с Android редко бывает хорошей идеей, потому что JDBC-соединения не являются хорошо подходит для моделей использования сети, обычно используемых устройствами Android.