Android 在实现房间数据库时,我们如何创建接口对象?

Android 在实现房间数据库时,我们如何创建接口对象?,android,object,kotlin,interface,dao,Android,Object,Kotlin,Interface,Dao,谁能给我解释一下!我们都知道我们可以而不是用Java和Kotlin创建接口对象。我们只能从类实现接口。那么,当谈到房间数据库时,我们如何能够创建一个DAO的对象,它实际上是存储库类中的一个接口 以下是Dao接口: import androidx.lifecycle.MutableLiveData import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import a

谁能给我解释一下!我们都知道我们可以而不是用Java和Kotlin创建接口对象。我们只能从类实现接口。那么,当谈到房间数据库时,我们如何能够创建一个DAO的对象,它实际上是存储库类中的一个接口

以下是Dao接口:

import androidx.lifecycle.MutableLiveData
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query

@Dao
interface WordDao {

    @Query("SELECT * from word_table ORDER BY word ASC")
    fun getAlphabetizedWords(): MutableLiveData<ArrayList<Word>>

    @Insert(onConflict = OnConflictStrategy.IGNORE)
    suspend fun insert(word: Word)

    @Query("DELETE FROM word_table")
    suspend fun deleteAll()
}
import androidx.lifecycle.MutableLiveData

class WordRepository(private val wordDao: WordDao) {

    val allWords: MutableLiveData<ArrayList<Word>> = wordDao.getAlphabetizedWords()

    suspend fun insert(word: Word) {
        wordDao.insert(word)
    }
}
导入androidx.lifecycle.MutableLiveData
导入androidx.room.Dao
导入androidx.room.Insert
导入androidx.room.OnConflictStrategy
导入androidx.room.Query
@刀
接口WordDao{
@查询(“按单词ASC顺序从单词表中选择*)
fun GetAlphapozedWords():MutableLiveData
@插入(onConflict=OnConflictStrategy.IGNORE)
暂停乐趣插入(word:word)
@查询(“从word_表中删除”)
suspend fun deleteAll()
}
下面是将Dao用作对象的存储库类:

import androidx.lifecycle.MutableLiveData
import androidx.room.Dao
import androidx.room.Insert
import androidx.room.OnConflictStrategy
import androidx.room.Query

@Dao
interface WordDao {

    @Query("SELECT * from word_table ORDER BY word ASC")
    fun getAlphabetizedWords(): MutableLiveData<ArrayList<Word>>

    @Insert(onConflict = OnConflictStrategy.IGNORE)
    suspend fun insert(word: Word)

    @Query("DELETE FROM word_table")
    suspend fun deleteAll()
}
import androidx.lifecycle.MutableLiveData

class WordRepository(private val wordDao: WordDao) {

    val allWords: MutableLiveData<ArrayList<Word>> = wordDao.getAlphabetizedWords()

    suspend fun insert(word: Word) {
        wordDao.insert(word)
    }
}
导入androidx.lifecycle.MutableLiveData
类WordRepository(私有val wordDao:wordDao){
val allWords:MutableLiveData=wordDao.getAlphapozedWords()
暂停乐趣插入(word:word){
wordDao.insert(word)
}
}

在这种情况下,您不创建WordDao,Room生成一个实现WordDao的类,Room为这个类创建代码。因此,当您获得WordDao时,将生成一个实现WordDao的教室。

在这种情况下,您不创建WordDao,教室将生成一个实现WordDao的班级,教室将为这个班级创建代码。因此,当您获得WordDao时,您将生成一个实现WordDao的教室。

您不会创建教室。Dao依赖关系将由
房间数据库提供。遵循。您不创建一个。Dao依赖关系将由
房间数据库提供。跟着。