ORMLite を使用して Android SQLite データベースを事前設定しようとしています。問題は、この操作が遅すぎることです。数分かかります。以下のコードは、それがどのように起こるかを示しています。
RuntimeExceptionDao<Company, Integer> companyDao = ORMLiteHelper.getInstance(context).getCompanyRuntimeDao();AssetManager am = context.getAssets();
try {
InputStream instream = am.open("companies.sqlite");
if (instream != null) {
InputStreamReader inputreader = new InputStreamReader(instream);
BufferedReader buffreader = new BufferedReader(inputreader);
String line;
try {
while ((line = buffreader.readLine()) != null) {
//Log.i("SQL", line);
if (line.startsWith("INSERT INTO Companies")) {
companyDao.executeRaw(line);
}
}
} catch (Exception e) {
Log.i("SQL", e.getMessage() + " " + e.getLocalizedMessage());
}
}
} catch (Exception e) {
Log.i("SQL", e.getMessage());
}
company.sqlite は、次のような何千行もの挿入行を含むファイルです。
INSERT INTO Companies (id, name) VALUES (1, 'Duff Beer');
注釈の使用を避けるために DatabaseConfigUtil クラスを使用しています。