当前位置:  开发笔记 > 编程语言 > 正文

Android支持JDBC吗?

如何解决《Android支持JDBC吗?》经验,为你挑选了3个好方法。

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

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



1> CommonsWare..:

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

总之,我不会走这条路.



2> kristianlm..:

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);
    } 



3> Elliott Hugh..:

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

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

推荐阅读
手机用户2502851955
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有