如何将数据预先填充到表中?

ale*_*bel 5 java android objectbox

最近,我发现了有关Room db文章,并且有第一个技巧将数据预填充到数据库中。

创建数据库时,当前是否存在某种优雅的方法来预填充数据?

我正在使用Dagger2,因此实际创建数据库非常容易。

@Module
class DatabaseModule{

    @Provides
    @Singleton
    fun provideObjectBox(context: Context): BoxStore =
        MyObjectBox.builder()
                .androidContext(context)
                .build()

}
Run Code Online (Sandbox Code Playgroud)

现在,我使用SharedPreferences的方式。因此,我只是检查它是否是数据库的第一个设置,而不是填充数据库。

Hat*_*zen 0

另外我猜想当问题被创建时,不可能有一个函数添加到构建器中,所以你可以简单地调用:

 MyObjectBox.builder()
            .initialDbFile(file)
            .androidContext(context)
            .build()
Run Code Online (Sandbox Code Playgroud)

这将使用给定的文件必须包含 mdb 格式的所有数据。我使用此功能来备份用户数据,因此我不必自己创建文件。
据我所知,除了创建对象并将它们放入 boxStore 之外,创建此文件并不容易。
我正在复制带有现有数据的文件,如下所示(虽然不是很好的方式)

 MyObjectBox.builder()
            .initialDbFile(file)
            .androidContext(context)
            .build()
Run Code Online (Sandbox Code Playgroud)

刚刚发现主要贡献者回答相同:https ://stackoverflow.com/a/51765399/8524651