Wednesday, 15 September 2010

sqlite - How to check value is exist in ArrayList<Hashmap> in android? -



sqlite - How to check value is exist in ArrayList<Hashmap<String,String>> in android? -

first insert info when no records in database works. when new info come server want check server record exist in database or not records database , utilize hashmap loop if record exist update record otherwise insert new record

here set code can check

string data=loadjsonfromasset(); log.e("data","--->"+data); seek { open_database(); jsonobject jobject= new jsonobject(data); jsonarray jstore= jobject.getjsonarray(ws_constant.getallssid.storeterminalinfo); mydbwifilist=mdb_helper.getallrecord(msqlitedatabase,db_constant.table.mywifi); log.d("record count","----->"+mydbwifilist.size()); // json array must > 0 if(jstore.length()>0) { for(int i=0;i<jstore.length();i++) { if(mydbwifilist.size()<=0) { mdb_helper.insert_mywifi_table(msqlitedatabase, jstore.getjsonobject(i).getstring(ws_constant.getallssid.wifiname), jstore.getjsonobject(i).getstring(ws_constant.getallssid.terminal_id), jstore.getjsonobject(i).getstring(ws_constant.getallssid.store_id), jstore.getjsonobject(i).getstring(ws_constant.getallssid.longitude), jstore.getjsonobject(i).getstring(ws_constant.getallssid.latitude)); } else { (hashmap<string, string> map : mydbwifilist) { (string key : map.keyset()) { if (key.equals(db_constant.mywifi.terminal_id)) { if(map.get(key).equals(jstore.getjsonobject(i).getstring(ws_constant.getallssid.terminal_id))) { int check=mdb_helper.updateallssid(msqlitedatabase, jstore.getjsonobject(i).getstring(ws_constant.getallssid.terminal_id), jstore.getjsonobject(i).getstring(ws_constant.getallssid.wifiname), jstore.getjsonobject(i).getstring(ws_constant.getallssid.store_id), jstore.getjsonobject(i).getstring(ws_constant.getallssid.longitude), jstore.getjsonobject(i).getstring(ws_constant.getallssid.latitude)); log.d("record update", "----------> true"+check); } else { mdb_helper.insert_mywifi_table(msqlitedatabase, jstore.getjsonobject(i).getstring(ws_constant.getallssid.wifiname), jstore.getjsonobject(i).getstring(ws_constant.getallssid.terminal_id), jstore.getjsonobject(i).getstring(ws_constant.getallssid.store_id), jstore.getjsonobject(i).getstring(ws_constant.getallssid.longitude), jstore.getjsonobject(i).getstring(ws_constant.getallssid.latitude)); log.d("record update", "----------> false"); } } } } } } } else { } close_database(); } grab (jsonexception e) { e.printstacktrace(); }

// records database

public arraylist<hashmap<string,string>> getallrecord(sqlitedatabase db, string tablename) { arraylist<hashmap<string, string>> info = new arraylist<hashmap<string,string>>(); string query = "select * " + tablename; cursor cursor = db.rawquery(query, null); if(cursor.getcount()<=0) { cursor.close(); homecoming data; } else { if (cursor.movetofirst()) { { hashmap<string, string> map = new hashmap<string, string>(); map.put(db_constant.mywifi.wifiname, cursor.getstring(cursor.getcolumnindex(db_constant.mywifi.wifiname))); map.put(db_constant.mywifi.terminal_id, cursor.getstring(cursor.getcolumnindex(db_constant.mywifi.terminal_id))); map.put(db_constant.mywifi.store_id, cursor.getstring(cursor.getcolumnindex(db_constant.mywifi.store_id))); map.put(db_constant.mywifi.longitude, cursor.getstring(cursor.getcolumnindex(db_constant.mywifi.longitude))); map.put(db_constant.mywifi.latitude, cursor.getstring(cursor.getcolumnindex(db_constant.mywifi.latitude))); data.add(map); } while (cursor.movetonext()); } } cursor.close(); homecoming data; } public int updateallssid(sqlitedatabase db,string terminalid, string wifiname, string storeid, string longitude, string latitude) { log.e("terminalid","--->"+terminalid); contentvalues cv = new contentvalues(); cv.put(db_constant.mywifi.wifiname,wifiname); cv.put(db_constant.mywifi.store_id,storeid); cv.put(db_constant.mywifi.longitude,longitude); cv.put(db_constant.mywifi.latitude,latitude); homecoming db.update(db_constant.table.mywifi, cv,db_constant.mywifi.terminal_id +" = "+terminalid, null); }

try way,hope help solve problem. boolean isnew=true; (hashmap<string, string> map : mydbwifilist){ if(map.get(db_constant.mywifi.terminal_id).equals(jstore.getjsonobject(i).getstring(ws_constant.getallssid.terminal_id)) && map.get(db_constant.mywifi.wifiname).equals(jstore.getjsonobject(i).getstring(ws_constant.getallssid.wifiname))){ isnew = false; break; }else{ isnew = true; } } if(isnew){ mdb_helper.insert_mywifi_table(msqlitedatabase, jstore.getjsonobject(i).getstring(ws_constant.getallssid.wifiname), jstore.getjsonobject(i).getstring(ws_constant.getallssid.terminal_id), jstore.getjsonobject(i).getstring(ws_constant.getallssid.store_id), jstore.getjsonobject(i).getstring(ws_constant.getallssid.longitude), jstore.getjsonobject(i).getstring(ws_constant.getallssid.latitude)); log.d("record update", "----------> false"); }else{ int check=mdb_helper.updateallssid(msqlitedatabase, jstore.getjsonobject(i).getstring(ws_constant.getallssid.terminal_id), jstore.getjsonobject(i).getstring(ws_constant.getallssid.wifiname), jstore.getjsonobject(i).getstring(ws_constant.getallssid.store_id), jstore.getjsonobject(i).getstring(ws_constant.getallssid.longitude), jstore.getjsonobject(i).getstring(ws_constant.getallssid.latitude)); log.d("record update", "----------> true"+check); }

android sqlite insert-update

No comments:

Post a Comment