如何在房间数据库中搜索?

时间:2019-02-23 20:51:31

标签: android

我创建了一个房间数据库,并在RecyclerView中显示了我的数据。我知道如何在房间数据库中添加,删除,deleteAll,更新数据,但是问题是我不知道如何在房间数据库中执行搜索?

我在工具栏中添加了搜索视图。但是我不知道如何在NoteDao和其余的类中添加查询,例如在我的管理员,MainActivity等中。

1 个答案:

答案 0 :(得分:0)

如果您能够在RecyclerView中显示Room数据库,则意味着您应该知道如何使用@Query()标记来获取数据。

使用与@Query关键字相同的WHERE标签进行搜索。

例如,如果您想查找特定的注释:

@Query("SELECT * FROM notes WHERE id == :id")
public Note getNote(String id)

但是,这只是使用WHERE的最简单方法。通常,您会将其与其他关键字结合使用,例如INLIKEBETWEEN

因此,对于您使用搜索的情况,您很可能希望使用LIKE关键字,该关键字可以在数据库中查询一个字段,该字段包含与搜索条件相匹配的部分数据:

例如:

@Query("SELECT * FROM notes WHERE note_title LIKE :search OR note_message LIKE :search")
public List<Note> getSearchedNote(String search)

这将搜索您的数据库,并返回具有便笺标题或便笺消息的便笺列表,其中包含所需的搜索词。