成千上万的ORMLite原始插件在Android上需要几分钟

我正在尝试使用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());
    }

companies.sqlite是一个包含数千行插入的文件,如下所示:

INSERT INTO Companies (id,name) VALUES (1,'Duff Beer');

我正在使用DatabaseConfigUtil类来避免使用注释.

解决方法

使用数据库事务.见 hereTransactionManager.类似于:
TransactionManager.callintransaction(connectionSource,new Callable<Void>() {
        public Void call() throws Exception {
            // Your code from above
        }
});

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...