2010-12-10 2 views

ответ

1
ContentValues values = new ContentValues(); 
for(int i = 0; i<=5; i++) { 
    values.put(COLUMN_NAME, i); 
    values.put(COLUMN_NAME, 0); 
    db.insert(TABLE_NAME, null, values); 
} 
+10

эффективен? не можете ли вы написать все строки с одним запросом? – 2013-11-25 11:32:52

5

Что вы ищете, это bulkInsert. Это позволит вам установить массив из ContentValues для вставки. Смотрите Android документы для получения дополнительной информации:

http://developer.android.com/reference/android/content/ContentResolver.html#bulkInsert%28android.net.Uri,%20android.content.ContentValues%5B%5D%29

+0

Важно отметить, что в документации говорится: «Эта функция не дает никаких гарантий относительно атомарности вставок». Но я не мог найти лучший способ вставить несколько строк. – 2016-08-01 20:29:22

5

вы можете использовать inserthelper, проверить этот blog

0

Очень старый пост, однако. Когда вы пытаетесь выполнить несколько вызовов в db, таких как обновление или вставка, оберните транзакциями. Это будет иметь огромное значение в скорости.

db.beginTransaction(); 
try 
{ 
    while(...) 
    { 
     // .. do your inserts, updates and deletes here 
    } 

    // If successful commit those changes 
    db.setTransactionSuccessful(); 
} 
finally 
{ 
    db.endTransaction(); 
} 
Смежные вопросы