Android 房间数据库检查号码是否已使用

Android 房间数据库检查号码是否已使用,android,sqlite,android-studio,kotlin,android-room,Android,Sqlite,Android Studio,Kotlin,Android Room,经过四天的搜索和尝试,我除了在stackoverflow上向你提问外,别无其他想法。在我用Kotlin编写的android应用程序中,我有一个房间数据库,我可以在其中传递电池的一些信息,每个电池当然都有一个自动生成的唯一id和一个可以由应用程序用户选择的数字,但我不希望任何数字可以重复使用,因此每个电池都应该是唯一的。现在,我试图找到一种方法来检查数据库是否已经包含这个数字。但是我该怎么做呢 我们可以在“dao”中编写一个方法来返回给定数量的可用电池计数,如下所示 @Query("SE

经过四天的搜索和尝试,我除了在stackoverflow上向你提问外,别无其他想法。在我用Kotlin编写的android应用程序中,我有一个房间数据库,我可以在其中传递电池的一些信息,每个电池当然都有一个自动生成的唯一id和一个可以由应用程序用户选择的数字,但我不希望任何数字可以重复使用,因此每个电池都应该是唯一的。现在,我试图找到一种方法来检查数据库是否已经包含这个数字。但是我该怎么做呢

我们可以在“dao”中编写一个方法来返回给定数量的可用电池计数,如下所示

@Query("SELECT count(*) FROM battery_table WHERE Number = :number")
int getBatteriesAvailableWithGivenNumber(int number);

如果大小为0,则数字是唯一的,可以用于您的目的。

好的,我已经尝试过,并且在日志中看到它正在工作,但我在获取活动数据时遇到问题,因为在我的viewmodel中,我使用了kotlincorutines,无法使其工作,因此函数返回Int,当我不使用viewmodel时,应用程序崩溃,因为我在MainThread上运行它,但仍然不知道如何在backroundthread上运行它,并接收我没有使用过Kotlin的IntHi@LuX1nAt0r。但在我们的例子中,我们创建了数据库包装器,负责数据库操作,并将数据存储在Ram中在上面,我们所做的不是从数据库中获取数据,而是从ram中获取数据。所以,响应会很快。