安卓Jetpack组合房间查询与body



我尝试执行以下操作:

@Query("SELECT COUNT(s_row) FROM table WHERE data = :data")
fun isDataExist(data: String): Boolean{
if (*QUERY_RETURN*) > 0{
return true
} else {
return false
}
}

所以我的问题是,如果数据库中已经存在数据,是否有一种方法可以让主体测试查询返回,然后返回布尔值?

对于初学者来说,daointerface,您不应该实现它的方法。

@Dao
interface DataDao {
//dao function should not have a body
@Query("SELECT * FROM some_table")
suspend fun selectFunction():List<String>
//dao function should not have a body
@Query("DELETE FROM some_table")
suspend fun clearData() .... }

你只需要编写查询,ROOM有底层逻辑来完成其余的工作

在您的情况下,您可以使用标识符id来查询该项是否存在于数据库中。

您可以执行类似的操作——注意,这是一个suspend函数,因为它是一个数据库操作。

@Query("SELECT EXISTS(SELECT 1 FROM table_name WHERE id=:id)")
suspend fun isDataExist(id: String): Boolean

之后,您可以在存储库实现或ViewModel(使用ViemodelScope(中使用此功能

最新更新