2012-07-27 75 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