Android record exists() in database?

前端 未结 6 1358
后悔当初
后悔当初 2020-12-13 10:00

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(TABLEN         


        
6条回答
  •  情书的邮戳
    2020-12-13 10:55

    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;
    }
    
    • I keep your parameter _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.
    • you can put the string select 1 from... in a static final constant to be even faster.

提交回复
热议问题