数据库Room实现模糊搜索(Java)

本文介绍了如何在Android应用中使用RoomDatabase进行单词的模糊搜索,包括创建实体类、定义带有模糊搜索功能的Dao接口以及如何调用数据库操作。通过`@Dao`注解封装数据库操作,简化了业务逻辑与底层数据库的交互。

        

目录

导入依赖

创建一个实体类

定义Dao(实现模糊搜索)

定义DataBase类

调用

效果展示


        本文实现的是对单词的模糊搜索。主要是在接口Dao处定义,只有一小段代码,学习过Room数据库的可以直接跳转到那去看。

导入依赖

implementation "androidx.room:room-runtime:2.2.6"
annotationProcessor "androidx.room:room-compiler:2.2.6"

创建一个实体类

@Entity
public class Vocabulary {
    @PrimaryKey(autoGenerate = true)
    public long id;

    @ColumnInfo
    public String word;
    public Vocabulary() {
    }

    @Override
    public String toString() {
        return word;
    }
}

定义Dao(实现模糊搜索)

        这部分也是Room用法中最关键的地方,因为所有访问数据库的操作都是在这里封装的。访问数据库的操作无非就是增删改查这4种,但是业务需求却是千变万化的。而Dao要做的事情就是覆盖所有的业务需求,使得业务方永远只需要与Dao层进行交互,而不必和底层的数据库打交道。
        那么下面我们就来看一下一个Dao具体是如何实现的。新建一个UserDao接口,注意必须使用接口,这点和Retrofit是类似的,然后在接口中编写如下代码:

@Dao
public interface VocabularyDao{

    @Query("SELECT * FROM vocabulary")
    List<Vocabulary> getAll();

    @Query("SELECT * FROM vocabulary WHERE WORD LIKE '%' || :s || '%' ")
    List<Vocabulary> searchWords(String s);

  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值