Android Room增删改查

在上篇文章中我们说了Room的搭建跟简单的增删改查,如果还有不明白的可以查看上篇文章

Android Room数据库的使用

这篇文章主要是讲一下Room在实际项目中的应用,在项目中,我们对数据库不可能只是进行简单的增删改查,肯定还会用到根据字段查询,然后修改,或者删除某一字段之类的.

首先是Dao

@Dao
public interface UserDao {

    //增
    @Insert
    void insert(User... users);

    //删除某一项
    @Delete
    void delete(User... users);

    //删全部
    @Query("DELETE FROM user")
    void deleteAll();

    //改
    @Update
    void update(User... users);

    //查全部
    @Query("SELECT * FROM user")
    List<User> getAllUsers();

    //根据字段查询
    @Query("SELECT * FROM User WHERE name= :name")
    User getUserByName(String name);

}

这里的6种方法基本就是项目中会运用到的6种情况了,主要就是根据字段查询某一项的内容,没有这个别的基本都没用

接下来就是在Activity中开始使用了

上篇文章中讲了增删改查了,这里就挑一些没讲过的讲一下吧,改,根据某一字段查询那一项,删除那一项内容

首先理一下逻辑,改,还有删除一项内容,第一个要做的就是先找出那一项内容,就是根据用户提供的字段去查询那一项内容

    //根据字段查询
    private User queryByName(String name) {

        final User user = UserDatabase
                .getInstance(this)
                .getUserDao()
                .getUserByName(name);

        return user;

    }

这里也可以返回别的类型,比如List,但是要跟Dao里面返回的是一样的,

我们已经找到我们想找的那一项了,然后就是更改那一项的内容

    //改             想要更改的内容 ,想要替换的内容 
    private void update(String name1,String name, int age) {

        //先根据想更改的内容得到那一项的实体类,然后进行更改
        User user = queryByName(name1);
        user.setName(name);
        user.setAge(age);
        UserDatabase
                .getInstance(this)
                .getUserDao()
                .update(user);

    }

这里传入的参数是灵活的,可以只更改name,或者只更改age

接下来就是删除这一项内容

    //删除某一项
    private void del(String name) {

        //先根据想更改的内容得到那一项的实体类,然后进行删除
        User user = queryByName(name);
        UserDatabase
                .getInstance(this)
                .getUserDao()
                .delete(user);

    }

到这里项目上的一些需要的操作都已经完成了,所有的操作都要现在Dao里面写出相应的方法,然后在activity中调用.

以上是本人对Room的一些浅见,如有不足之处,还望指出

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值