gpt4 book ai didi

android - 如何从Room Database Android Kotlin获取回调

转载 作者:行者123 更新时间:2023-12-02 12:57:17 26 4
gpt4 key购买 nike

我想从房间数据库获取仅行计数作为Int值,
不是来自已初始化的LiveData(例如livedata.value?.size)

道课

 @Dao 
interface MyDao {
@Query("SELECT COUNT(*) FROM User")
fun getUserCount(): Int
}

存储库类
class MyRepository(private val myDao: MyDao) {    
fun getUserCount() = myDao.getUserCount()
}

ViewModel类
class MyViewModel(application: Application) : AndroidViewModel(application) {
fun getUserCount() = myRepository.getUserCount()
}

这就是我要的。但是如您所知,我们需要在后台线程而不是在主线程访问 session 室数据库

所以我更改了像 this这样的代码

道课
 @Dao 
interface MyDao {
@Query("SELECT COUNT(*) FROM User")
suspend fun getUserCount(): Int
}

存储库类
class MyRepository(private val myDao: MyDao) {    
suspend fun getUserCount() = myDao.getUserCount()
}

ViewModel类
class MyViewModel(application: Application) : AndroidViewModel(application) {
fun getUserCount() = viewModelScope.launch {
myRepository.getUserCount()
}
}

如果行数为1,如何获取“1”作为回调?

最佳答案

使用COUNT

@Query("SELECT COUNT(column_name or primary key column name) from table_name ")
fun getCount(): Long

从存储库调用 getCount()

关于android - 如何从Room Database Android Kotlin获取回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60069349/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com