how to bulk insert in sqlite in android how to bulk insert in sqlite in android sqlite sqlite

how to bulk insert in sqlite in android


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<Cities> 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.


try SQLiteStatement
in 2-3 times faster than just beginTransaction()

public void add_cities(ArrayList<Cities> list) {    SQLiteDatabase database = this.getWritableDatabase();    String sql = "INSERT INTO " + TABLE_NAME + " VALUES(?, ?)";    SQLiteStatement statement = database.compileStatement(sql);    database.beginTransaction();    try {        for (Cities c : list) {            statement.clearBindings();            statement.bindLong(1, c.getCityId());            statement.bindLong(2, c.getCityName());            statement.execute();        }        database.setTransactionSuccessful();    } finally {        database.endTransaction();    }}


Thank you @karakuri.i pass the list of city id and city name to add_city function and loop through that list and insert all the data. From this we can insert data to database in a small amount of time.

database class:

public void add_cities(ArrayList<Cities> 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();        }    }

data class:

public class Cities {    public String getCityid() {        return cityid;    }    public void setCityid(String cityid) {        this.cityid = cityid;    }    public String getCityname() {        return cityname;    }    public void setCityname(String cityname) {        this.cityname = cityname;    }    @Expose    private String cityid="0";    @Expose    private String cityname="";    public Cities(){    }}

activity class:

 ArrayList<Cities> mCities;     protected void onCreate(Bundle savedInstanceState) {            super.onCreate(savedInstanceState);            setContentView(R.layout.activity_splash);            db = new DatabaseHandler(getApplicationContext());           executeCircleAndOperatorsList();        }      void executeCircleAndOperatorsList() {     db.ClearTables();            ServiceClient serviceClient = ServiceUtil.getServiceClient();            JsonParser jsonParser = new JsonParser();           mCitiesCallback = new CancelableCallback(citiescallback);            serviceClient.getCities("getCities_v1", mCitiesCallback);    }    Callback<JsonObject> citiescallback=new Callback<JsonObject>() {            @Override            public void success(final JsonObject jsonObject, Response response) {                Thread t=new Thread(new Runnable() {                    @Override                    public void run() {                        parsecities(jsonObject);                        runOnUiThread(new Runnable() {                            @Override                            public void run() {                                Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT).show();                                Intent intent=new Intent(SplashActivity.this,LoginAcivtiy.class);                                startActivity(intent);                            }                        });                    }                });                t.start();            }            @Override            public void failure(RetrofitError error) {            }        };        public void parsecities(JsonObject result) {            //Log.v("TAG_RESULT", "" +result.toString());            try{                String Status = result.get("Status").getAsString();                if (TextUtils.equals(Status, "true")) {                    Gson gson = new Gson();                    JsonArray array = result.get("data")                            .getAsJsonArray();                    Type type = new TypeToken<ArrayList<Cities>>() {                    }.getType();                    setmCities((ArrayList<Cities>) gson.fromJson(array, type));                    long start = System.currentTimeMillis();                    db.add_cities(mCities);                    System.out.println(System.currentTimeMillis() - start);                    circle_list=db.get_cities();                    Log.v("TAG_CIRCLELIST",""+circle_list);                }                else if (TextUtils.equals("Status", "false")) {                    // showToast(operators.getMessage());                } else {                    throw new JSONException("Something went wrong ");                }        }catch(Exception e){                e.printStackTrace();            }        }      public void setmCities(ArrayList<Cities> mCities) {            this.mCities = mCities;        }    }