how to bulk insert in sqlite in android

前端 未结 5 1089
野趣味
野趣味 2020-12-03 10:09

I am using SQLiteOpenHelper for data insertion. I need to insert 2500 id and 2500 names, So it takes too much time. Please any one help me how to reduce the insertion tim

5条回答
  •  Happy的楠姐
    2020-12-03 10:37

    Use a transaction to insert all the rows -- NOT one row per transaction.

    SQLiteDatabase db = ...
    db.beginTransaction();
    try {
        // do ALL your inserts here
        db.setTransactionSuccessful()
    } finally {
        db.endTransaction();
    }
    

    EDIT

    public void add_cities(List list) {
        SQLiteDatabase db = this.getWritableDatabase();
        db.beginTransaction();
        try {
            ContentValues values = new ContentValues();
            for (Cities city : list) {
                values.put(CityId, city.getCityid());
                values.put(CityName, city.getCityName());
                db.insert(TABLE_CITY, null, values);
            }
            db.setTransactionSuccessful();
        } finally {
            db.endTransaction();
        }
    }
    

    ALL inserts, ONE transaction.

提交回复
热议问题