Как добавить запрос для настройки базы данных комнаты запросов для заполнения БД с некоторым начальным значением - PullRequest
0 голосов
/ 10 октября 2019

Я пытаюсь добавить Room DB в мое приложение. Мне нужно добавить некоторые основные данные в моей таблице во время инициализации БД. Есть ли способ сделать это, как addSetUpQuery ()

Room.databaseBuilder(appContext, KeepiDB::class.java, DATABASE_NAME)
                .addMigrations(MIGRATION_2_3)
                .addSetUPQuery("Query here")
                .build()

1 Ответ

1 голос
/ 10 октября 2019

Я видел вас основной способ, как вы можете сделать?

База данных комнаты инициализации, как показано ниже

 val instance = Room.databaseBuilder(
                    context.applicationContext,
                    WordRoomDatabase::class.java,
                    "Word_database"
                ).addCallback(WordDatabaseCallback()).build() // set my own callback here

И реализация WordDatabaseCallback как

private class WordDatabaseCallback(
        private val scope: CoroutineScope
    ) : RoomDatabase.Callback() {

        override fun onOpen(db: SupportSQLiteDatabase) {
            super.onOpen(db)
            INSTANCE?.let { database ->
                scope.launch(Dispatchers.IO) {
                    populateDatabase(database.wordDao())
                }
            }
        }

        suspend fun populateDatabase(wordDao: WordDao) {

            //Clearing all the data from table  
            wordDao.deleteAll()

            //Adding record 
            var word = Word("Hello")
            wordDao.insert(word)

            //Adding record 
            word = Word("World!")
            wordDao.insert(word)
        }
    }

WordDao - это мой DAO , и яПопытка вставить / удалить данные через него

Для более подробной информации вы можете увидеть ниже ссылки

  1. Link1
  2. Link2
  3. Ссылка3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...