2010-12-16 42 views
3

我看到您已經在Android上進行了一些測試。 當我試圖用H2運行我的測試時,我得到FileNotFoundException。 我想使用採用嵌入式模式,這裏是我的代碼片段:使用H2的Android示例

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

我不知道這個問題可能是什麼,你可以發佈完整的錯誤消息和堆棧跟蹤? '官方'文件在這裏:

http://h2database.com/html/tutorial.html#android

+0

感謝您的示例。現在我看到了我的錯誤:我應該在db路徑中使用我的應用程序的包信息。 現在有效。但是,我發現H2比SQLite慢了大約兩倍。我正在做一個簡單的從1000行表中選擇所有查詢。 我已經在兩款不同的Android設備上測試過HTC和三星。 我原來的問題仍然存在,SQlite花費了大約一秒來從1000行表中執行一個簡單的選擇所有查詢。這很慢! 有誰知道android的快速SQLite驅動程序? – Ted 2010-12-22 15:33:26

+0

是的,對於簡單的查詢,我期望H2比SQLite慢。目前:-)我想你需要以不同的方式解決問題。一個例子是沒有獲得所有的行,另一個解決方案可能是以不同的方式存儲數據(將所有重要的數據保存在一行左右)。 – 2010-12-23 06:57:18

+0

此鏈接對我有用。你有一個新的嗎?我真的很想找這個。 – Malabarba 2015-05-30 22:59:48