Android样例使用H2

3

我看到你已经在Android上进行了一些测试。 当我尝试使用H2运行我的测试时,我遇到了FileNotFoundException的问题。 我正在尝试使用嵌入式模式,以下是我的代码片段:

    String url =  "jdbc:h2:~/myTestDB" + ";FILE_LOCK=FS" + ";PAGE_SIZE=1024"
    + ";CACHE_SIZE=8192";
    Class.forName("org.h2.Driver");
    return DriverManager.getConnection(url, "sa", "");

我也尝试过:

    String url = "jdbc:h2:/data/data/" + "com.mydomain.MyApp"
            + "/data/myTestDB" + ";FILE_LOCK=FS" + ";PAGE_SIZE=1024"
            + ";CACHE_SIZE=8192";

但是没有成功。

我已将 myTest.h2.db 放置在 Android 项目的 /assets 文件夹中。 如果您能发布代码示例,那就太好了!

谢谢。

1个回答

2

谢谢提供样例。现在我看到我的错误了:我应该在数据库路径中使用我的应用程序包信息。现在它可以工作了。但是,与SQLite相比,我发现H2大约慢了两倍。我正在从一个1000行的表中进行简单的选择所有查询。我已经在两个不同的Android设备上进行了测试,HTC和Samsung。 我的原始问题仍然存在,SQLite执行从1000行表中的简单选择全部查询需要大约一秒钟时间。这太慢了! 有没有人知道一个快速的Android SQLite驱动程序? - Ted
是的,对于简单的查询,我预计H2比SQLite要慢。目前 :-) 我猜你需要用不同的方式来解决这个问题。一个例子是不获取所有行,另一个解决方案可能是以不同的方式存储数据(将所有重要数据保存在一行或其他方式)。 - Thomas Mueller
这个链接对我来说无效。你有新的链接吗?我真的很想找到它。 - Malabarba
对不起,那是我的疏忽,我使用了一个临时链接...很抱歉我现在没有那个信息了。但是我已经更新了链接。 - Thomas Mueller

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接