【问题标题】:Room Database check if number is already used房间数据库检查号码是否已被使用
【发布时间】:2021-03-09 12:07:18
【问题描述】:

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

【问题讨论】:

    标签: android sqlite android-studio kotlin android-room


    【解决方案1】:

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

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

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

    【讨论】:

    • 好的,我试过了,我在日志中看到它正在工作,但是我在将数据获取到活动时遇到问题,因为在我的视图模型中我使用了 kotlincorutines,但我无法获得它工作,所以函数返回一个 Int,当我不使用视图模型时,应用程序崩溃,因为我在主线程上运行它
    • 仍然不明白如何在后台线程上运行它并接收 Int
    • 嗨@LuX1nAt0r 我没有使用过 Kotlin。但在我们的例子中,我们创建了数据库包装器,它负责数据库操作并将数据存储在 Ram 中。当我们执行上述操作时,我们做的不是从数据库中获取,而是从内存中获取。所以,响应会很快。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-04
    • 1970-01-01
    • 2018-08-18
    • 2018-01-04
    • 1970-01-01
    • 2021-09-12
    相关资源
    最近更新 更多