【问题标题】:insert large data from file into android sqlite database将文件中的大数据插入android sqlite数据库
【发布时间】:2018-07-15 06:47:36
【问题描述】:

我在文件中存储了大约 9000 个 json 记录,其中包含 7-8 个属性。我必须将该数据插入sqlite 数据库。最有效的方法是什么。
到目前为止,我正在将该文件数据转换为jsonarray 并将其转换为arraylist,然后将该列表插入数据库,这绝对不是一种有效的方法

编辑:-这个文件已经存在于resources文件夹中,所以数据需要一开始就插入到数据库中

【问题讨论】:

  • 使用 Realm 数据库。
  • "花了大约 6-8 分钟" -- 如果您提供 minimal reproducible example,也许有人可以提供优化它的建议(例如,使用事务)。如果这些数据应该随您的应用一起提供,请不要提供 JSON,而是提供准备好的 SQLite 数据库和 use SQLiteAssetHelper 以使用该打包数据库。
  • 不用转换Json -> JsonArray -> ArrayList -sqlite,使用Json-> JsonArray 直接一一放入sqlite数据库

标签: android json sqlite


【解决方案1】:

不要随应用提供 JSON,而是随应用提供 SQLite 数据库。

对于 JSON 来自其他地方(例如 Web 服务)的情况,请确保在使用该数据更新 SQLite 时使用事务。默认情况下,每个 SQL 操作都是单个事务,事务有点昂贵。在一个事务(或 9 个事务,或 90 个事务)中插入 9000 个项目比在 9000 个事务中插入 9000 个项目要快得多。如果您使用的是SQLiteDatabase,请使用beginTransaction()markTransactionSuccessful()endTransaction()。如果您使用的是 Room,请使用 @Transaction。如果您正在使用其他一些数据库 API,请查阅其文档以了解如何设置您自己的事务。

【讨论】:

    猜你喜欢
    • 2011-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-05
    • 1970-01-01
    相关资源
    最近更新 更多