我当前正在开发一个警报库,该库需要在sqlite数据库中存储多个警报详细信息。 因此,我将Google的Room Persistence库与警报库一起使用。
我在build.gradle中添加了以下代码。
Field.initial
我添加了数据库类
| | value assigned to Field.initial |
|-----------------|----------|--------------------------|-------|--------|-------|----------|
| model field | through | associated form field | obj | obj.id | [obj] | [obj.id] |
|-----------------|----------|--------------------------|-------|--------|-------|----------|
| OneToOneField | n/a | ModelChoiceField | 1 & 2 | 1 & 2 | 2 | 1 & 2 |
| ForeignKey | n/a | ModelChoiceField | 1 & 2 | 1 & 2 | 2 | 1 & 2 |
| ManyToManyField | explicit | ModelChoiceField | 1 | 1 | 2 | 1 & 2 |
| ManyToManyField | implicit | ModelMultipleChoiceField | T | T | 1 & 2 | A |
我还添加了数据访问对象
implementation 'android.arch.persistence.room:runtime:1.1.1'
annotationProcessor 'android.arch.persistence.room:compiler:1.1.1'
我正在如下所示在我的库的主类中创建一个数据库实例
@Database(entities = AlarmDetails.class, version = 1)
public abstract class AlarmDatabase extends RoomDatabase {
public abstract AlarmDao alarmDao();
}
我正在从演示项目中调用上述构造函数,并按如下所示传递应用程序上下文
@Dao
public interface AlarmDao {
@Insert(onConflict = OnConflictStrategy.REPLACE)
void insert(AlarmDetails alarmDetails);
@Update
void update(AlarmDetails alarmDetails);
@Delete
void delete(AlarmDetails alarmDetails);
@Query("SELECT * FROM alarms")
List<AlarmDetails> getAll();
}
这是我的应用程序类
/*Constructor*/
public AlarmBase(Context mcontext,Context ncontext) {
this.mContext = mcontext;
alarmDatabase= Room.databaseBuilder(ncontext,
AlarmDatabase.class, "alarm_db")
.build();
}
但是当我运行项目时,出现以下错误
Context applicationContext=MyApplicationClass.getContext();
alarmBase = new AlarmBase(this,applicationContext);
在将Room Persistence添加到我的图书馆之前,我能够与我的图书馆一起运行该项目
答案 0 :(得分:0)
我也刚刚在项目的build.gradle(Module app)中添加了以下几行
implementation 'android.arch.persistence.room:runtime:1.1.1'
annotationProcessor 'android.arch.persistence.room:compiler:1.1.1'
效果很好