我选择 greenDAO 是因为它的网站声明它是 Android 上最快的 ORM 系统之一。令我失望的是,在三星 i9001 上插入 600 条记录大约需要 40 秒。我不确定我是否做错了什么。
您能提出什么建议来减少执行这些操作所需的时间吗?
生成器代码:
private static void addNewsArticle(Schema schema) {
Entity article = schema.addEntity("NewsArticle");
article.addIdProperty().autoincrement();
article.addStringProperty("title").notNull();
article.addStringProperty("body").notNull();
article.addStringProperty("shortDescription").notNull();
article.addStringProperty("thumb");
article.addDateProperty("date").notNull();
}
插入
Date now = Calendar.getInstance().getTime();
for (int i = 0; i < 600; i++) {
NewsArticle testArticle = new NewsArticle();
testArticle.setTitle("title-text" + i);
testArticle.setBody("body-text" + i);
testArticle.setShortDescription("short-text" + i);
testArticle.setDate(now);
newsArticleDao.insert(testArticle);
}
正如我怀疑的那样,事情并不是在单个 sql 语句中执行的。为了实现它,只需在 DAO 对象上使用 insertInTx 即可。
这是上面的代码,稍作修改,使其运行时间大约为半秒
NewsArticle[] newsArticles = new NewsArticle[600];
NewsArticle testArticle;
for (int i = 0; i < 600; i++) {
testArticle = new NewsArticle();
testArticle.setTitle("title-text" + i);
testArticle.setBody("body-text" + i);
testArticle.setShortDescription("short-text" + i);
testArticle.setDate(now);
newsArticles[i] = testArticle;
}
newsArticleDao.insertInTx(newsArticles);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)