![](/img/trans.png)
[英]ROOM/Android Sorting a List with Repository and ViewModel | Kotlin
[英]Multiple Local Databases in Android Kotlin Using Room and ViewModel
如何使用ViewModel
class 在房間中添加多個數據庫? 我是否需要為每個數據庫使用不同的ViewModel
class 和不同的@Entity
和不同的@Dao
,或者我可以使用另一個數據庫的相同的@Entity
和@Dao
,抱歉,如果問題很明顯,請提前致謝
我用相同的@Entity
、 @Dao
和ViewModel
嘗試了不同的數據庫,沒有用
我也嘗試了不同的一切,數據庫出現了但我無法查詢它,請幫助:(
是的,對於 Room 中的每個數據庫,您需要一個單獨的實體 class 和道 class。 這是因為每個數據庫都會有自己的一組數據,Entity 和 Dao 類用於定義模式並提供對數據庫中數據的訪問。
// Define the Entity class for each database
@Entity(tableName = "data1")
data class Data1(
@PrimaryKey(autoGenerate = true) val id: Int,
val data: String
)
@Entity(tableName = "data2")
data class Data2(
@PrimaryKey(autoGenerate = true) val id: Int,
val data: String
)
// Define the Dao class for each database
@Dao
interface Data1Dao {
@Query("SELECT * FROM data1")
fun getAll(): List<Data1>
@Insert
fun insert(data: Data1)
// Other database operations...
}
@Dao
interface Data2Dao {
@Query("SELECT * FROM data2")
fun getAll(): List<Data2>
@Insert
fun insert(data: Data2)
// Other database operations...
}
// Define the ViewModel class for each database
class MyViewModel1: ViewModel() {
val db1: Database1
val db2: Database2
init {
db1 = Room.databaseBuilder(context, Database1::class.java,
"db1").build()
db2 = Room.databaseBuilder(context, Database2::class.java,
"db2").build()
}
fun getDataFromDb1(): List<Data1> {
return db1.data1Dao().getAll()
}
fun getDataFromDb2(): List<Data2> {
return db2.data2Dao().getAll()
}
// Other database operations...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.