我使用协程和Room保存应用程序的用户个人资料数据。我具有CompleteProfileActivity:在该用户中填写他们的信息并确认(确认按钮)。我将它们发送到服务器并观察响应。如果响应成功。我将它们保存到我的ProfileDatabase中。


@Dao
interface ProfileDao {
@Insert(onConflict = OnConflictStrategy.IGNORE)
fun saveProfile(model:Profile)

@Query("SELECT * FROM profile_table")
fun getProfile():Deferred<Profile>
}

最佳答案

如果该方法调用成功插入,则说明该操作成功,否则您将获得异常。

同样,这些也不必是返回空隙的方法。

您可以让@Insert返回表中主键的类型,该键将成为新插入的记录的键。

@Insert(onConflict = OnConflictStrategy.IGNORE)
fun saveProfile(model: Profile): Int

如果是@Delete,那么如果您返回Int,它将返回删除的行数:
@Delete
fun deleteProfiles(profiles: List<Profile>): Int

使用@Query进行更手动的实现也是如此,如果返回Int,则返回受影响的行数:
@Query("DELETE FROM profiles")
fun deleteAllProfiles(): Int

07-24 09:48
查看更多