我正在用Java创建一个Android应用,该应用使用房间SQLite来存储数据。 该应用程序有两个表:
我想为course_name
实体添加默认值,以便在用户打开应用程序时找到课程。
例如:
数学-体育-艺术-音乐
@Entity
public class CoursesTable {
@PrimaryKey(autoGenerate = true)
int course_id;
String course_name;
}
答案 0 :(得分:3)
要在首次运行时/创建数据库后插入数据,可以使用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
}
};