To pytanie i wybrana odpowiedź były dla mnie pomocne w zrozumieniu, jak łatwo i szybko sprawdzić, czy rekord został zakończony. Jednak widziałem wiele miejsc, które zalecają przeciw użyciu rawQuery
ze względu na możliwość wstrzyknięcia SQL. (Na przykład, rawQuery Vs. database.query)
Więc tutaj jest to, co ja zdecydowaliśmy się na:
public boolean Exists(String searchItem) {
String[] columns = { COLUMN_NAME };
String selection = COLUMN_NAME + " =?";
String[] selectionArgs = { searchItem };
String limit = "1";
Cursor cursor = db.query(TABLE_NAME, columns, selection, selectionArgs, null, null, null, limit);
boolean exists = (cursor.getCount() > 0);
cursor.close();
return exists;
}
Nie wiem, czy to jest tak szybki jak wybranej odpowiedzi lub nie, ale po badaniu to wydaje się zgodne do zalecanych konwencji Androida.
Aktualizacja
teraz polecić @ odpowiedź Yuku, ale nie usunie kopalnię jeszcze bo nadal chce prowadzić ludzi od korzystania surowe zapytań.
Sprawdź moją odpowiedź tutaj: http://stackoverflow.com/questions/27597922/android-sqlite-check-if-row-exists-in-table/43849296#43849296 –