SQLiteDatabase: Insérer uniquement si la valeur n'existe pas (pas via SQL brut de commande)

Je sais qu'il y a une commande SQL qui va comme ceci: IF NOT EXISTS, mais depuis Android SQLiteDatabase classe a de beaux méthodes, je me demandais si il est possible d'insérer une valeur si elle n'existe pas par l'intermédiaire d'une méthode.

Actuellement, je suis en utilisant ce pour insérer un String:

public long insertString(String key, String value) {
    ContentValues initialValues = new ContentValues();
    initialValues.put(key, value);
    return db.insert(DATABASE_TABLE, null, initialValues);
}

(db est une instance de SQLiteDatabase.)

J'ai essayé la méthode insertOrThrow() au lieu de insert(), mais il semble qu'il fait la même chose que insert(). Qui est, si la valeur est déjà dans la ligne, il est inséré de nouveau de sorte que la ligne a maintenant deux valeurs de la même valeur.

Pourquoi ne pas vous rendre votre clé unique?
Vous pouvez utiliser un ORM de la Bibliothèque. J'ai utilisé ORMDroid et vous pouvez faire un certain nombre de requêtes SQL par l'intermédiaire des méthodes. ormlite.com/sqlite_java_android_orm.shtml

OriginalL'auteur eightx2 | 2013-03-29