Java 如何使用API而不是硬编码字符串进行sqlite升级?

Java 如何使用API而不是硬编码字符串进行sqlite升级?,java,android,database,sqlite,Java,Android,Database,Sqlite,我想在sqlite表中插入(如果不存在,则在插入时更新)一些行 我看到了这个sqlite命令: INSERT OR REPLACE INTO Employee (id, name, role) VALUES (1, 'John Foo', 'CEO'); 我如何通过代码API使用它 我想用: if (db.update(SAVED_OFFERS_TABLE_NAME, values, KEY_UID, new String[] { values.getAsString(K

我想在sqlite表中插入(如果不存在,则在插入时更新)一些行

我看到了这个sqlite命令:

INSERT OR REPLACE INTO Employee (id, name, role) 
  VALUES (1, 'John Foo', 'CEO');
我如何通过代码API使用它

我想用:

if (db.update(SAVED_OFFERS_TABLE_NAME, values, KEY_UID,
        new String[] { values.getAsString(KEY_UID) }) == 0) {
    db.insert(SAVED_OFFERS_TABLE_NAME, // table
            null, // nullColumnHack
            values); 
}

还有更优雅的方法吗?

用插入(…)代替插入(…)。或者
execSQL()
执行原始的
插入或替换
SQL。

这比我目前的方式好吗?是的,减少了对数据库的往返,避免了潜在的并发问题(在更新和插入之间修改了数据库)。