I am looking to the fastest and the correct way to check if a record exists in the database:
public boolean Exists(String _id) {
Cursor c=db.query(TABLENAME(), new String[] {"1"}, "_ID="+_id, null, null, null, null);
if (!c.equals(null))
return c.moveToFirst();
return false;
}
Consider that mDb
is your SqlLiteDatabase
class
public boolean Exists(String _id) {
Cursor cursor = mDb.rawQuery("select 1 from yourTable where _id=%s",
new String[] { _id });
boolean exists = (cursor.getCount() > 0);
cursor.close();
return exists;
}
_id
as a String
but I think it should be a Long
.select 1
is more fast than select columnName
because the process doesn't need to retrieve all values from the table in the select clause.select 1 from...
in a static final constant to be even faster.