我知道在Android上有android.database.sqlite包,提供有用的类来管理内部的android数据库.
问题是 - 我可以使用标准的java.sql包来操作Android的数据库,而无需使用android.database.sqlite中的任何内容.*我尝试使用SQLite JDBC驱动程序打开连接但是当我添加库作为项目eclipse的e引用时崩溃与"java堆内存不足...无法转换为dalvik VM".
您无法java.*
轻松导入JAR实现类.并且,JDBC需要移植到Android,因为它可能依赖于Android缺乏的JavaSE中的类.并且,无论如何,你需要为SQLite编写自己的JDBC驱动程序,包装Android已经提供的API,因为我怀疑现有的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); }
the JDBC driver is undocumented and unsupported. please do not use this code.
avoid java.sql and use android.database.sqlite instead.