如何预先填充数据到表?

时间:2018-05-16 19:48:47

标签: java android objectbox

最近我找到了article about Room db,并且首先提示将数据预填充到数据库。

目前是否有一些优雅的方法可以在创建数据库时预先填充数据?

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

@Module
class DatabaseModule{

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

}

我现在用SharedPreferences做的方式。所以我只是检查它是否是第一次设置数据库而不是填充数据库。

1 个答案:

答案 0 :(得分:0)

我还猜想在创建问题时不可能在构建器中添加一个函数,因此您可以简单地调用:

 MyObjectBox.builder()
            .initialDbFile(file)
            .androidContext(context)
            .build()

这将使用给定的文件,必须包含mdb格式的所有数据。我正在使用此功能来备份用户数据,因此我不必自己创建文件。
据我所知,创建此文件而不是创建对象并将它们放入boxStore并不容易。
我正在使用已经存在的数据复制文件(虽然不是很简单)

     val dbFile = File(File(File(activity.getFilesDir(), "objectbox"),  BoxStoreBuilder.DEFAULT_NAME), "data.mdb")

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