美文网首页
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