Android SQLiteOpenHelper - 每个表的不同类?

时间:2014-05-19 17:31:32

标签: android sqlite android-sqlite

我正在阅读这篇文章(http://www.vogella.com/tutorials/AndroidSQLite/article.html),以了解Android应用程序中的SQLite数据库。

在文章中他有一个提示:

  

最好为每个表创建一个单独的类。此类定义静态onCreate()和onUpgrade()方法。这些方法在SQLiteOpenHelper的相应方法中调用。这样,即使您有多个表,SQLiteOpenHelper的实现仍然可读。

如果我正确理解了这个提示,我应该为我的数据库中的每个表都有一个类吗?

这真的是最好的做法吗?

如果是这样,那么使用多个表的复杂查询呢?如果创建在不同的类中,我该如何管理呢?

如何正确保存数据库版本?对于每个表更改,我将更改数据库版本号?

由于

1 个答案:

答案 0 :(得分:9)

SQLiteOpenHelper管理数据库文件,而不是表。您可以使用给定的数据库生命周期回调(onCreate()onUpgrade())自行管理表。

快速阅读一篇文章可以解释作者主张为每个表创建一个单独的数据库助手(我最初做过),但事实并非如此。那本来是不好的建议。

重申作者的意图:

  • 一个数据库助手类。
  • 帮助程序涉及单独的特定于表的帮助程序类,它们不是SQLiteOpenHelper,而只是为顶级数据库帮助程序执行部分工作。