2010-12-10 24 views

Répondre

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

est-ce efficace? Ne pouvez-vous pas écrire toutes les lignes avec une seule requête? –

5

Ce que vous cherchez est bulkInsert. Il vous permettra de fournir un tableau de ContentValues à insérer. Voir les docs Android pour plus d'informations:

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

+0

Il est important de noter que la documentation dit: "Cette fonction ne garantit pas l'atomicité des insertions." Mais je ne pourrais pas trouver un meilleur moyen d'insérer plusieurs lignes. –

5

vous pouvez utiliser inserthelper, cochez cette blog

+2

'InsertHelper' est maintenant obsolète. –

0

Très ancien poste cependant. Lorsque vous essayez d'effectuer plusieurs appels à la base de données, tels que la mise à jour ou l'insertion, effectuez un enveloppement avec les transactions. Cela fera une énorme différence de vitesse.

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

    // If successful commit those changes 
    db.setTransactionSuccessful(); 
} 
finally 
{ 
    db.endTransaction(); 
} 
Questions connexes