Эффективное пакетное выполнение SQL-запроса на Android, для базы данных обновления

Как мы разработчики 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();
    }

6
задан Donal Fellows 21 July 2010 в 10:00
поделиться

2 ответа

Как мне их эффективно вставить?

Использовать транзакцию:

    db.beginTransaction();
    try {
        for(;;) {
            db.execSQL(...);
            }
        db.setTransactionSuccessful();
    } finally {
        db.endTransaction();
    }
16
ответ дан 8 December 2019 в 13:44
поделиться

Я думаю, что у вас есть единственный способ загрузить эти 1000 записей, теперь, что касается развертывания этой БД с вашим файлом apk, посмотрите этот пост:

http: // www.helloandroid.com/tutorials/how-have-default-database

1
ответ дан 8 December 2019 в 13:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: