我创建了一个房间数据库,并在RecyclerView中显示了我的数据。我知道如何在房间数据库中添加,删除,deleteAll,更新数据,但是问题是我不知道如何在房间数据库中执行搜索?
我在工具栏中添加了搜索视图。但是我不知道如何在NoteDao和其余的类中添加查询,例如在我的管理员,MainActivity等中。
答案 0 :(得分:0)
如果您能够在RecyclerView
中显示Room数据库,则意味着您应该知道如何使用@Query()
标记来获取数据。
使用与@Query
关键字相同的WHERE
标签进行搜索。
例如,如果您想查找特定的注释:
@Query("SELECT * FROM notes WHERE id == :id")
public Note getNote(String id)
但是,这只是使用WHERE
的最简单方法。通常,您会将其与其他关键字结合使用,例如IN
,LIKE
或BETWEEN
。
因此,对于您使用搜索的情况,您很可能希望使用LIKE
关键字,该关键字可以在数据库中查询一个字段,该字段包含与搜索条件相匹配的部分数据:
例如:
@Query("SELECT * FROM notes WHERE note_title LIKE :search OR note_message LIKE :search")
public List<Note> getSearchedNote(String search)
这将搜索您的数据库,并返回具有便笺标题或便笺消息的便笺列表,其中包含所需的搜索词。