This question already has answers here:
How to populate Android Room database table on first run?
(5个答案)
9个月前关闭。
我正在Java中创建一个Android应用,该应用使用房间SQLite来存储数据。
该应用程序有两个表:
课程表
学生表
我想为
例如 :
数学-体育-艺术-音乐
可以找到完整的示例here和有关回调here的详细信息
Reference
(5个答案)
9个月前关闭。
我正在Java中创建一个Android应用,该应用使用房间SQLite来存储数据。
该应用程序有两个表:
课程表
学生表
我想为
course_name
实体添加默认值,以便在用户打开应用程序时找到课程。例如 :
数学-体育-艺术-音乐
@Entity
public class CoursesTable {
@PrimaryKey(autoGenerate = true)
int course_id;
String course_name;
}
最佳答案
要在数据库创建后首次运行时插入数据,可以使用RoomDatabase.Callback
。
您可以在数据库创建后运行脚本或每次运行
使用RoomDatabase.Callback打开数据库,此类是
在最新版本的Room库中可用。
您需要实现的onCreate和onOpen方法
如图所示,将RoomDatabase.Callback添加到RoomDatabase.Builder
下面。
yourDatabase = Room.databaseBuilder(context, YourDatabase.class, "your db")
.addCallback(rdc)
.build();
RoomDatabase.Callback rdc = new RoomDatabase.Callback() {
public void onCreate (SupportSQLiteDatabase db) {
// ADD YOUR "Math - Sport - Art - Music" here
}
public void onOpen (SupportSQLiteDatabase db) {
// do something every time database is open
}
};
可以找到完整的示例here和有关回调here的详细信息
Reference