How to populate Android Room database table on first run?

后端 未结 7 1909

In SQLiteOpenHelper there is a onCreate(SQLiteDatabase ...) method which i used to populate database tables with some initial data.

7条回答
  •  不知归路
    2020-12-02 17:43

    @Provides
    @Singleton
    LocalDatabase provideLocalDatabase(@DatabaseInfo String dbName, Context context) {
        return Room.databaseBuilder(context, LocalDatabase.class, dbName)
                .addCallback(new RoomDatabase.Callback() {
                    @Override
                    public void onCreate(@NonNull SupportSQLiteDatabase db) {
                        super.onCreate(db);
                        db.execSQL("INSERT INTO id_generator VALUES(1, 1, 1);");
                    }
                })
    //                .addMigrations(LocalDatabase.MIGRATION_1_2)
                .build();
    }
    

提交回复
热议问题