【问题标题】:When database Table is created in android application?什么时候在android应用程序中创建数据库表?
【发布时间】:2016-06-23 12:33:23
【问题描述】:

我想知道这个问题的答案,因为在我的一次采访中,面试官问了我这个问题。

什么时候创建数据库表..?

选项:-

  1. 在应用程序启动时。
  2. 插入数据时。

谁能解释一下数据库是什么时候创建的?

我总是创建具有特定行和列并插入数据的表,为我的应用程序更新数据,但从未考虑过这个问题。

【问题讨论】:

  • 这取决于代码。这个问题需要更多背景信息。

标签: android android-sqlite android-applicationinfo


【解决方案1】:

这对我来说似乎是一个奇怪的问题,答案应该是每当你创建一个,不是吗?直接来自documentation

public class DictionaryOpenHelper extends SQLiteOpenHelper {

    private static final int DATABASE_VERSION = 2;
    private static final String DICTIONARY_TABLE_NAME = "dictionary";
    private static final String DICTIONARY_TABLE_CREATE =
                "CREATE TABLE " + DICTIONARY_TABLE_NAME + " (" +
                KEY_WORD + " TEXT, " +
                KEY_DEFINITION + " TEXT);";

    DictionaryOpenHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(DICTIONARY_TABLE_CREATE);
    }
}

【讨论】:

  • 这个答案没有让我明白,我只想知道什么时候在数据库中创建表,在应用程序启动时间或我们插入数据的时间?
  • @AndroidMob 每当作为开发人员决定在包含CREATE TABLE 语句的SQL 字符串上调用database.execSQL()
  • 这意味着每当我调用创建 DictionaryOpenHelper 的实例时,所有的表都会被创建对吗?
  • 如果您使用扩展SQLiteOpenHelper的类,并在onCreate()方法中调用database.execSQL()(如我的回答所示),则onCreate()方法将不会被调用,直到您拨打getReadableDatabasegetWriteableDatabase 获取first time。但是,您可以选择是否使用SQLiteOpenHelper(尽管推荐)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-25
  • 2010-09-22
  • 1970-01-01
  • 2011-06-13
  • 2011-01-01
  • 1970-01-01
相关资源
最近更新 更多