使用预先填充的数据库和ormlite

时间:2013-01-22 07:43:15

标签: android ormlite

我想通过assets文件夹中的大数据库发送我的应用程序。 Android SQLiteAssetHelper似乎是解决这个问题的方法。

但是,该应用程序也使用ormlite,并且它有许多映射到数据库表的Java对象。如何让ormlite使用预先填充的数据库?

2 个答案:

答案 0 :(得分:0)

我已经创建了自己的SqliteOpenHelper,它扩展了OrmLiteSqliteOpenHelper,然后在里面我复制了SQLiteAssetHelper中的代码。

答案 1 :(得分:0)

你可以摆脱SQLiteAssetHelper并实现这个DatabaseInitializer class,它将你的数据库(如果它不存在)复制到data/data/yourapp/databases/yourdb.db(ormlite生成你的数据库的文件夹)

在DatabaseHelper构造函数中:

public DatabaseHelper(Context context) {
    super(context, DATABASE_NAME, null, DATABASE_VERSION);

    DatabaseInitializer initializer = new DatabaseInitializer(context);
    try {
        initializer.createDatabase();
        initializer.close();

    } catch (IOException e) {
        e.printStackTrace();
    }
}

清洁&简单的解决方案

一些小缺点:
  - 仅适用于Android 2.2.3+
  - 小心尺寸(3mb没遇到任何问题)