Как мы разработчики Android знают, SQLiteDatabase execSQL
метод может выполнить только один оператор.
В документе говорится:
Выполните единственный SQL-оператор, который не является запросом. Например,
CREATE TABLE
,DELETE
,INSERT
, и т.д. Несколько операторов, разделенных;
s не поддерживаются.
Я должен загрузиться в пакете записей, 1000 и подсчет.
Как я вставляю их эффективно?
И что самый легкий путь состоит в том, чтобы поставить этим SQLs с Вашим apk?
Я упоминаю, уже существует системная база данных, и я буду работать на этом onUpdate
событие.
У меня есть этот код до сих пор:
List li = new ArrayList();
li.add(new String[] {
"-1", "Stop", "0"
});
li.add(new String[] {
"0", "Start", "0"
});
/* the rest of the assign */
try {
for (String[] elem : li) {
getDb().execSQL(
"INSERT INTO " + TABLENAME + " (" + _ID + "," + NAME + "," + PARSE_ORDER
+ ") VALUES (?,?,?)", elem);
}
} catch (Exception e) {
e.printStackTrace();
}
Как мне их эффективно вставить?
Использовать транзакцию:
db.beginTransaction();
try {
for(;;) {
db.execSQL(...);
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
Я думаю, что у вас есть единственный способ загрузить эти 1000 записей, теперь, что касается развертывания этой БД с вашим файлом apk, посмотрите этот пост:
http: // www.helloandroid.com/tutorials/how-have-default-database