Когда таблица базы данных создается в приложении для Android?

Я хочу знать ответ на этот вопрос, потому что в одном из моих интервью интервьюер задал мне этот вопрос.

Когда создается таблица базы данных..?

Вариант:-

  1. При запуске приложения.
  2. при вставке данных.

может ли кто-нибудь объяснить мне, когда база данных создана?

Я всегда создавал таблицу с определенной строкой и столбцом и вставлял данные, обновляя данные для своего приложения, но никогда не задумывался об этом вопросе.


person AndroidMob    schedule 23.06.2016    source источник
comment
Это зависит от кода. Этот вопрос нуждается в большем контексте.   -  person laalto    schedule 23.06.2016


Ответы (1)


Это кажется мне странным вопросом, ответ должен быть всякий раз, когда вы его создаете, не так ли? Прямо из документации:

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);
    }
}
person Bryan    schedule 23.06.2016
comment
этот ответ не очищает меня, я хочу просто знать, когда таблица создается в БД, во время запуска приложения или во время вставки данных? - person AndroidMob; 23.06.2016
comment
@AndroidMob Всякий раз, когда вы как разработчик решаете вызвать database.execSQL() в строке SQL, содержащей оператор CREATE TABLE. - person Bryan; 23.06.2016
comment
это означает, что всякий раз, когда я буду звонить для создания экземпляра DictionaryOpenHelper, все эти таблицы будут созданы правильно? - person AndroidMob; 23.06.2016
comment
Если вы используете класс, расширяющий SQLiteOpenHelper, и вызываете database.execSQL() в методе onCreate() (как показано в моем ответе), метод onCreate() не будет вызываться до тех пор, пока вы не вызовете getReadableDatabase или getWriteableDatabase для первый раз. Но это ваш выбор, хотите ли вы использовать SQLiteOpenHelper или нет (хотя это рекомендуется). - person Bryan; 23.06.2016