【发布时间】:2017-05-23 03:00:30
【问题描述】:
我正在尝试在我的数据库中插入 1120 条记录(记录=问题,因为它是琐事游戏),但它需要大约 20 秒,我什至无法使用 insertHelper,因为它在 android 中已被弃用。 我进行了很多搜索并使用了 beginTransaction()、setTransactionSuccessful() 和 db.endTransaction(); 但没有任何帮助。也许我没有正确使用它们,所以如果有错误请纠正我
HelperClass
private void addingeachquestions(Questions question) {
SQLiteDatabase db = this.getWritableDatabase();
db.beginTransaction();
try {
ContentValues values = new ContentValues();
values.put(QUESTION, question.getQUESTION());
values.put(OPTION1, question.getOPT1());
values.put(ANSWER, question.getANSWER());
values.put(ANSWER2, question.getANSWER2());
db = this.getWritableDatabase();
db.insert(TABLE_NAME, null, values);
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
public void addquestions() {
//famous people
Questions q1 = new Questions("Who was the first African American to have served as president of United States of America ?", "BAROBAACKMAQCAEMBD", "BARACK", "OBAMA");
this.addingeachquestions(q1);
Questions q2 = new Questions("Who co-founded Apple company with Steve Wozniak, Ronald Wayne ?", "TSOVWIBYUBZRGOEJSE", "STEVE", "JOBS");
this.addingeachquestions(q2);
主活动类
demoHelperClass = new DemoHelperClass(this);
SQLiteDatabase sqLiteDatabase = demoHelperClass.getWritableDatabase();
demoHelperClass.addquestions();
【问题讨论】:
-
addquestions()或addingeachquestions(Questions question)? -
将所有插入放入一个事务中。在此处查看接受的答案:stackoverflow.com/questions/32088056/…
-
这是您必须在应用程序中执行的操作吗?您不能将预填充的数据库与您的应用一起打包吗?
-
@John Joe 我已经更新了问题,请检查!!!
-
@aljo 我之前已经扔掉了,但我不明白他们是如何在内容值之后使用循环的。你能告诉我它是如何工作的吗