美文网首页
Android ROOM 数据的使用

Android ROOM 数据的使用

作者: 雨来 | 来源:发表于2020-10-04 22:11 被阅读0次

官网地址:
https://developer.android.com/training/data-storage/room#java

分为四部走:

1、创建实体类
@Entity
public class LocalSearchBean {
    @PrimaryKey(autoGenerate = true)//主键是否自动增长,默认为false
    private int id;

    private String searchContent;


    public LocalSearchBean() {
    }

    @Ignore
    public LocalSearchBean(int id, String searchContent) {
        this.id = id;
        this.searchContent = searchContent;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getSearchContent() {
        return searchContent;
    }

    public void setSearchContent(String searchContent) {
        this.searchContent = searchContent;
    }
}

注意上面的注解 @Entity 它标注的说明这个类就是我们表的结构 有 id 字段和searchContent 字段 注意上面的有一个构造加了@Ignore 注解 如果不使用的构造我们主不要声明出来了 如果声明出来不使用要加上 @Ignore注解。

2、创建 增删改查的工具类 有利于我们少写 SQ语句
@Dao
public interface LocalSearchDao {
    //增
    @Insert
    void insert(LocalSearchBean... searchcontents);

    //删
    @Delete
    void delete(LocalSearchBean... searchcontents);

    //改
    @Update
    void update(LocalSearchBean... searchcontents);

    //查
    @Query("SELECT * FROM localsearchbean")
    List<LocalSearchBean> getAllContents();

    //删除所有
    @Query("DELETE FROM localsearchbean ")
    void deleteAll();
}

重点注意上面的注解就ok了 SELECT * FROM localsearchbean 这里的 localsearchbean是表名 如user表 student表这里我们要注意一下 和下面的dateBase数据操作类 有一个地方是一样的 也就是 创建数据库和表的时候

3、创建数据库操作类
image.png

上面标给的地方 我猜想应该也是表名 因为SQL是大小写不敏感的 所以要对应起来。

4、在页面中使用 (Activity 或Fragment中使用)

插入数据

public void dbInsert(String insertStr) {

        LocalSearchBean bean = new LocalSearchBean();
        bean.setSearchContent(insertStr);
        SearchContentDb.getInstance(mActivity).getLocalSearchDao().insert(bean);
    }

查询所有数据

SearchContentDb.getInstance(mActivity).getLocalSearchDao().getAllContents();

相关文章

网友评论

      本文标题:Android ROOM 数据的使用

      本文链接:https://www.haomeiwen.com/subject/qshouktx.html