【问题标题】:How to import a .sql file to the android room database?如何将 .sql 文件导入 android room 数据库?
【发布时间】:2021-05-25 02:16:01
【问题描述】:

有谁知道如何通过 room 将下载的 sql 文件导入到 android 数据库中? 我在 android 手机中有一个从 mysql 数据库导出的 .sql 文件。我想将 .sql 文件导入到 android sql 数据库。 我尝试使用 android JetPack 的房间。我查官网:https://developer.android.google.cn/training/data-storage/room/creating-views 但是没有办法做到这一点。

我的 .sql 文件中的内容是这样的:

DELETE FROM NewsInfo WHERE id = '20210524210624';
INSERT INTO NewsInfo VALUES ('20210524210624','2','aaa','bbb',3,'','','','en','push','2021-05-24 21:06:24');

那么有谁知道如何将下载的sql文件导入Android上的房间?

提前致谢

【问题讨论】:

    标签: android sql android-room


    【解决方案1】:

    我知道的最好方法是从具有 execSQL() 函数的 Room 中检索实际的 db 对象。 并在 .sql 文件中为每一行流式传输db.execSQL(line); (编辑)如果我知道这些信息不容易获得,我会发布示例,但实际上我自己找不到。

    RoomDatabase database = ...
    SupportSQLiteDatabase db = database.getOpenHelper().getWritableDatabase();
    
    db.beginTransaction();
    db.execSQL(line);
    db.endTransaction();
    

    【讨论】:

    • 如何从 Room 中获取实际的 db 对象? RoomDatabase 类似乎没有函数 execSQL()
    • 似乎不需要 db.beginTransaction();和 db.endTransaction();不会用。
    【解决方案2】:

    您可以简单地在数据库实例上调用查询方法。

    appDatabase.query("YOUR INSERT QUERY")
    

    因此,为您在 .sql 文件中获得的每个查询调用上述方法。

    【讨论】:

      猜你喜欢
      • 2012-01-10
      • 2020-08-13
      • 1970-01-01
      • 2013-12-28
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      • 1970-01-01
      相关资源
      最近更新 更多