官网地址:
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();
网友评论