具有初始值后的android房间ORM

标签 android sqlite android-room

在 Android ORM 中,如何在 SQLite 的表中添加一些初始值我通常在 SQLite 的 onCreate 中执行此操作。 但是在房间里我怎么能做到这一点意味着在数据库上创建后会添加一些初始值。 谢谢你的回答。

最佳答案

您可以使用最新版本的 Room 库中提供的 RoomDatabase.Callback 来做到这一点。

您需要实现 RoomDatabase.Callback 的 onCreate 和 onOpen 方法,并将其添加到 RoomDatabase.Builder 中,如下所示。

RoomDatabase.Callback

  RoomDatabase.Callback rdc = new RoomDatabase.Callback(){
        public void onCreate (SupportSQLiteDatabase db){
        // do something after database has been created
        }
        public void onOpen (SupportSQLiteDatabase db){
        //do something every time database is open
        }
    };

向房间数据库构建器添加回调

 yourDatabase = Room.databaseBuilder(context,
                            YourDatabase.class, "your db").addCallback(rdc).build();

引用:https://medium.com/@srinuraop/database-create-and-open-callbacks-in-room-7ca98c3286ab

关于具有初始值后的android房间ORM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45022813/

相关文章:

android - 数组方法返回数组,只有第一个值?

android - 适用于 Android 的 Ormlite,值得发布帮助程序吗?

android - 使用 RecyclerView 的房间数据库 View

python - sqlite数据库未连接

android - 使用 android room 持久性库在对象内插入对象

android - 如何将 Room 表导出为 CSV 格式?

android - 如何使用 GSON 在 android 中解析具有动态 “key” 的 JSON

java - 防止小部件在短时间内被多次点击

android - 如何在 fragment 中添加滚动条

用于屏幕指纹的 Android API