【问题标题】:How to pre-populate data to table?如何将数据预填充到表中?
【发布时间】:2018-05-16 19:48:47
【问题描述】:

最近我找到了article about Room db,第一个提示是将数据预填充到数据库中。

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

我使用的是Dagger2,所以数据库的实际创建非常简单。

@Module
class DatabaseModule{

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

}

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

【问题讨论】:

    标签: java android objectbox


    【解决方案1】:

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

     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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-06
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      相关资源
      最近更新 更多