Android支持JDBC吗?

Moj*_*sin 21 sqlite android jdbc

我知道在Android上有android.database.sqlite包,提供有用的类来管理内部的android数据库.

问题是 - 我可以使用标准的java.sql包来操作Android的数据库,而无需使用android.database.sqlite中的任何内容.*我尝试使用SQLite JDBC驱动程序打开连接但是当我添加库作为项目eclipse的e引用时崩溃与"java堆内存不足...无法转换为dalvik VM".

Com*_*are 17

您无法java.*轻松导入JAR实现类.并且,JDBC需要移植到Android,因为它可能依赖于Android缺乏的JavaSE中的类.并且,无论如何,你需要为SQLite编写自己的JDBC驱动程序,包装Android已经提供的API,因为我怀疑现有的JDBC驱动程序使用JNI.而且,当所有这一切都完成后,您将拥有一个增加了大量膨胀的应用程序,从而降低了人们下载和保留您的应用程序的可能性.

总之,我不会走这条路.


kri*_*nlm 11

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);
    } 
Run Code Online (Sandbox Code Playgroud)


Ell*_*hes 5

the JDBC driver is undocumented and unsupported. please do not use this code.

avoid java.sql and use android.database.sqlite instead.