Поддерживает ли Android поддержку JDBC
Я знаю, что на Android есть пакет android.database.sqlite, который предоставляет полезные классы для управления внутренней базой данных Android.
Вопрос: могу ли я использовать стандартный пакет java.sql для управления базой данных Android, не используя ничего из android.database.sqlite. * Я пытаюсь открыть соединение с помощью SQLite JDBC-драйвера, но когда я добавил библиотеку в качестве ссылки на проект eclipse падает с "кучей java из памяти... не может преобразовать в dalvik VM".
Ответы
Ответ 1
Вы не можете легко импортировать классы JAR, реализующие классы java.*
. И JDBC нужно будет портировать на Android, поскольку он, вероятно, полагается на классы в JavaSE, которых нет в Android. И, в любом случае, вам нужно будет написать свой собственный драйвер JDBC для SQLite, а упаковка API Android уже будет поставляться, поскольку я подозреваю, что существующий драйвер JDBC использует JNI. И когда все это будет сделано, у вас будет приложение, которое добавит много раздувания, что сделает его менее вероятным, и люди будут загружать и сохранять ваше приложение.
Короче говоря, я бы не пошел по этому маршруту.
Ответ 2
Есть ли (недокументированный?) JDBC-драйвер для базы данных Android SQLite. Попробуй это:
(от http://groups.google.com/group/android-developers/browse_thread/thread/cf3dea94d2f6243c)
try {
String db = "jdbc:sqlite:" + getFilesDir() + "/test.db";
Class.forName("SQLite.JDBCDriver");
Connection conn = DriverManager.getConnection(db);
Statement stat = conn.createStatement();
stat.executeUpdate("create table primes (number int);");
stat.executeUpdate("insert into primes values (2);");
stat.executeUpdate("insert into primes values (3);");
stat.executeUpdate("insert into primes values (5);");
stat.executeUpdate("insert into primes values (7);");
ResultSet rs = stat.executeQuery("select * from primes");
boolean b = rs.first();
while (b) {
Log.d("JDBC", "Prime=" + rs.getInt(1));
b = rs.next();
}
conn.close();
} catch (Exception e) {
Log.e("JDBC", "Error", e);
}
Ответ 3
Драйвер JDBC недокументирован и не поддерживается. пожалуйста, не используйте этот код.
избегайте java.sql и вместо этого используйте android.database.sqlite.
Ответ 4
Теперь есть такой драйвер: SQLDroid.