@Data
@Entity(tableName = “note”)
public class Note implements Serializable {
@PrimaryKey(autoGenerate = true)
private int id;
@ColumnInfo(name = “title”)
private String title;
@ColumnInfo(name = “content”)
private String content;
@ColumnInfo(name = “last_update_time”)
private Date lastUpdateTime;
}
1.2 编写数据库管理类Database
注意:因为实体类中存在复杂数据类型——时间类。以是在数据库管理中需要使用@TypeConverters注入转换类,对复杂类型进行同一的转换处置处罚
@Database(entities = {Note.class},version = 1,exportSchema = false)
@TypeConverters({Converters.class})
public abstract class NoteDatabase extends RoomDatabase {
private static NoteDatabase INSTANCE;
public synchronized static NoteDatabase getINSTANCE(Context context) {
if (INSTANCE==null) {
INSTANCE = Room.databaseBuilder(context.getApplicationContext(),NoteDatabase.class,“note_datebase”)
.fallbackToDestructiveMigration()
.build();
}
return INSTANCE;
}
/**
在@Database中 多个entity则写多个Dao
*/
public abstract NoteDao getNoteDao();
}
1.3 编写数据库操纵接口Dao
@Dao
public interface NoteDao {
@Insert
void insertNotes(Note… notes);
@Update
void updateNotes(Note… notes);
@Delete
void deleteNotes(Note… notes);
@Query(“delete from note”)
void deleteAllNotes();
@Query(“select * from note order by last_update_time desc”)
LiveData<List> queryAllNotes();
@Query(“select * from note where content like :pattern order by last_update_time desc”)
LiveData<List> queryNotesWithPattern(String pattern);
}
2.编写数据仓库(Repository、AsyncTask) 如果此处不引入Repository类会造成什么影响呢?为什么要引入Repository?