Androidには、内部Androidデータベースを管理するのに役立つクラスを提供するAndroid.database.sqliteパッケージがあることを知っています。
問題は、Android.database.sqliteから何も使用せずに標準のJava.sqlパッケージを使用してAndroidのデータベースを操作できますか?* SQLite JDBCドライバーを使用して接続を開こうとしましたが、プロジェクトEclipseへの参照としてライブラリを追加したとき「Javaヒープがメモリ不足です... dalvikVMに変換できませんでした」とクラッシュします。
Java.*
クラスを実装するJARを簡単にインポートすることはできません。また、JDBCはAndroidに移植する必要があります。これは、おそらくJavaSEのクラスに依存しているためAndroid不足しています。そして、とにかく、APIをラップしてSQLite用の独自のJDBCドライバーを作成する必要があります。 Android既存のJDBCドライバーはJNIを使用していると思われるため、既に提供されています。すべてが完了すると、多くの肥大化を追加するアプリケーションが作成され、人々がそうする可能性が低くなります。アプリケーションをダウンロードして保持します。
要するに、私はこのルートには行きません。
AndroidのSQLiteデータベース用の(文書化されていない?)JDBCドライバーがあります。これを試してください:(から 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);
}
jDBCドライバーは文書化されておらず、サポートされていません。このコードは使用しないでください。
java.sqlを避け、代わりにAndroid.database.sqliteを使用してください。
現在、そのようなドライバーがあります: SQLDroid 。