将 sqlite-jdbc-3.7.2.jar 放在 Eclipse 中的哪个位置以使其工作?
Posted
技术标签:
【中文标题】将 sqlite-jdbc-3.7.2.jar 放在 Eclipse 中的哪个位置以使其工作?【英文标题】:Where to place sqlite-jdbc-3.7.2.jar in eclipse to make it work? 【发布时间】:2013-09-26 11:10:47 【问题描述】:将 sqlite-jdbc-3.7.2.jar 放在 libs 文件夹中会导致 eclipse 运行到堆错误。将其放在单独的文件夹中并将其添加到构建路径会导致类未找到错误。 将其添加到导出的 jars 列表中也会导致堆错误。
有什么想法吗?
【问题讨论】:
你为什么首先想要它? @cYrixmorten 最明显的是因为 java/SQLite 的大多数示例都提到了这一点。我对“android/sqlite”的搜索不断提出对此的参考,这在我测试过的所有代码中都运行良好。它似乎在Android中被破坏了。但是,目前,我还没有阅读任何官方参考说明它为什么会损坏或无法正常工作。如果你说它坏了,不能工作......我错过了这个。如果它可以工作......如何?使用特殊的清单和可运行线程配置,大多数其他 java IO 都可以工作(包括 mysql)。 @L.D.James 很公平,但根据用例,我宁愿选择像 parse.com 之类的东西,这就是我问的原因。一个快速的谷歌搜索让我找到了这个***.com/questions/1728476/does-android-support-jdbc,所以 CommonsWare 似乎不认为 JDBC 是受支持的。 @cYrixmorten 感谢您帮我解决问题! 【参考方案1】:快速回答,不管你把它放在哪里都会失败。问题是 Android 不支持某些原生 jar 库。我们可能不得不依赖一些开发人员来移植一些更好的分辨率。
在这种情况下(虽然我确定还有其他情况),您可以使用 SQLDroid.jar。我已经对其进行了测试,到目前为止它的性能与本地 java 程序中的普通 sqlite-jdbc-3.7.2.jar 一样。
我敢肯定(正如我在对 cYrixmorten 的评论中提到的那样,选择使用原生 sqlite 支持的目的是为了让您的其他 sqlite 数据库具有可移植性,以及拥有原生 CRUD 支持。
使用 SQLDroid.jar 的经过测试的工作示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
代码段:
public void checksqlite()
try
String db = "jdbc:sqlite:" + getFilesDir() + "/test.db";
Class.forName("org.sqldroid.SQLDroidDriver");
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);
cYrixmorten 提供的链接和 cmets 在帮助我找到此解决方案方面非常宝贵。我希望其他人可以从中受益。
【讨论】:
以上是关于将 sqlite-jdbc-3.7.2.jar 放在 Eclipse 中的哪个位置以使其工作?的主要内容,如果未能解决你的问题,请参考以下文章