Android记录在数据库中存在()?


问题内容

我正在寻找最快和正确的方法来检查数据库中是否存在记录:

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;
}

您有任何问题吗?


问题答案:

考虑那mDb是你的SqlLiteDatabase

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为a,String但我认为应该将其作为Long
  • select 1它比select columnName因为不需要在select子句中从表中检索所有值而更快。
  • 您可以将字符串select 1 from...放入静态最终常量中,以使其更快。