在android中将大的初始数据插入sqlite数据库

Insert large initial data to sqlite database in android

本问题已经有最佳答案,请猛点这里访问。

我的应用程序将包含一个大数据库,那么如何插入数据? 我想在PC上做这个,然后把它放在应用程序中,因为它有很多数据。

我已经看到帖子将初始数据插入到sql lite android /将自己的SQLite数据库添加到android应用程序/使用数据库发送应用程序
但我不明白或不确定它是最好的方法。


您可以将数据库包含资源中所需的所有数据,然后使用此值启动应用程序。

  • 首先,您需要在项目中创建一个"资产"文件夹
  • 创建自己的数据库帮助程序(扩展SQLiteOpenHelper)
  • 然后你将实现一个"复制"方法,类似于:

    private void copyDatabase(String dbname,Context context)抛出IOException {

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        InputStream is = context.getAssets().open(dbname);
        String outFileName = DB_PATH + dbname;
        OutputStream out = new FileOutputStream(outFileName);
        byte[] buffer = new byte[1024];
        int length;
        while ((length = is.read(buffer)) > 0) {
            out.write(buffer, 0, length);
        }
        is.close();
        out.flush();
        out.close();
    }

  • 如果您有大量数据,那么运送准备好的数据库的选项是最好的。 首次启动时,启动时间将缩短。 毕竟,这是最简单的一个。