2012-07-27 86 views
0

檢索數據我有一個電影的SQLite數據庫的數據結構如下(我會保持它的簡單,真正的表有多個字段):檢索數據 - SQLite的查詢VS存儲和內存

  • 流派 - ( ID,姓名)
  • 電影 - (ID,genreId,名稱,年份)
  • 場景 - (ID,movieId,名)

例如:

  • 流派 - (7,驚悚片)
  • 電影 - (250,7,第六感,1999)
  • 場面 - (15,250,我看到死去的人)

我有數據存儲在我的Android應用程序的SQLite數據庫中。 我有一個數據管理器類,用於檢索相關數據。

我需要能夠做到以下幾點:

  • 得到所有流派
  • 得到每流派ID的所有電影(+根據不同領域進行排序abbilty)
  • 得到特定的電影根據影片ID
  • 項目根據影片ID
  • 得到所有場景...

我想知道,性能wize,什麼是更好的方式來處理這個數據:

  1. 執行一個SQLite查詢每次我需要得到數據的時間。
  2. 從thdb獲取數據一次後,將其存儲在數組列表中,從而將其保存在內存中,例如 - 流派的ArrayList,其中流派對象包含Movie對象的數組列表...
  3. 與選項2但帶有散列圖。在這種情況下 - 在地圖上循環時,是否有辦法控制對象的順序?
  4. 想到其他任何選項嗎?

回答

0

通常,您從數據庫檢索數據並使用CursorAdapter來表示ListView中的數據。所以,我想這是最有效的方法。如果你的表有不同的活動,直到活動被破壞,它們會將你的數據存儲在內存中。

+0

感謝您的評論:) ListView並非總是在我的項目中。我希望有一種更通用的方式來獲取數據,以便能夠適應所有可能的場景。 – dors 2012-07-27 09:02:50

+0

在任何情況下,最好使用遊標而不使用ArrayLists,因爲遊標會更快。 – Yury 2012-07-27 09:31:01

+0

但你用來獲取光標的數據庫查詢呢?將結果保存在內存中比每次需要數據時執行查詢更好嗎? – dors 2012-07-27 10:00:44