2012-02-18 64 views
7

我正在創建我的第一個使用SQlite的Android應用程序。我有一個數據庫零經驗,除了創建MySQL數據庫與WordPress使用...使用Rest在Sqlite中存儲數據


編輯:做約休息一番研究,我仍然感到困惑如何休息,SQLite和Android開發適合在一起。我的目標是通過URL訪問基於休息的Web服務並訪問某些數據集,然後將它們存儲在我的SQlite數據庫中。然後我想通過我的java程序訪問數據庫的內容,並相應地使用它們。

數據集可以單獨下載到CSV format,但是因爲我將使用其中的很多,我不想單獨通過每行並將它們存儲在數據庫中。我希望有一種更有效的方式來將這些數據集存儲在數據庫中。

我的主要問題是:

  • 我怎樣才能從URL複製網頁的XML內容到我的SQLite數據庫?我可以用我的java程序,通過sqlite數據庫或java庫來做到這一點嗎?
  • 我只需要將url中的內容從url複製到sqlite數據庫中一次?如果是這樣,如果數據集中的任何信息發生更改,我該怎麼辦?

回答

5

您首先需要一個適用於您的sqllite數據庫的模式。該模式應映射到Web服務背後的對象。例如,如果Web上存在Person實體,則需要在數據庫中有一個Person表。這取決於你想要捕獲什麼。

當您完成架構設計後,您應該開始編寫代碼,以幫助您在android上創建管理數據庫&。這與SQLiteOpenHelper類的幫助下完成的: http://developer.android.com/reference/android/database/sqlite/SQLiteOpenHelper.html

如果你需要保持與雲(Web服務)的數據synce'd數據庫,你應該實現同步。 Android提供了非常高效的同步框架。

另外,不要觀看的Android工程師解釋最佳實踐這個視頻:http://www.youtube.com/watch?v=xHXn3Kg2IQE

注意,實際上從Web服務獲取數據,你會使用的URLConnection API: http://developer.android.com/reference/java/net/URLConnection.html

該樣品可能捕獲大部分。 http://developer.android.com/resources/samples/SampleSyncAdapter/index.html

+0

謝謝,這些參考文獻回答了我所有的Q! – mdegges 2012-02-27 22:33:01

0

我可以回答你的第一個問題,「我不知道如何有效地添加它們」? 是的,SQlite功能非常強大,智能化,與傳統數據庫一樣,您可以在一次交易中添加上千條記錄,顯着提高性能。

關於第二個問題,正如我的理解,因爲CVS文件非常簡單,所以你可以自己下載和分析它。

3

在閱讀CSV文件而言,這裏還有一些很好的資源:

Can you recommend a Java library for reading (and possibly writing) CSV files?

一旦您已經閱讀每個CSV行成一個對象,那麼你可以回過頭來堅持它到數據庫。我是ORMLite的作者,所以我會談談使用它。我不相信有Android的休眠端口。

有很多Android examples可以幫助您快速掌握ORMLite。也some good tutorials。如果你想一次寫多行,那麼我建議使用批量任務ORMLite功能。有關信息,請參閱郵件列表上的discussion about creating lists of objects

+0

感謝您的回覆。當我昨天發佈我的問題時,我不知道這一點,但網站上有一個使用rest來提供對數據集訪問的API。因爲我需要使用太多的大數據集,而且現在我知道有一個特定的API,所以我相應地更新了我的問題。 – mdegges 2012-02-20 21:37:44

+0

我會創建另一個問題,因爲現在我的答案是沒有意義的。 @mdegges – Gray 2012-02-21 15:10:53