因此,我试图通过传递指定行的ID从数据库中删除行,并且在网上找到了一些代码,但我真的不知道它是如何工作的。它在SQLiteDatabase的db.delete方法中使用whereClause参数。有人知道背后的逻辑吗? getWhereClause到底做什么?
//the delete method in my database class
public void deleteRow(String compareColumn, String compareValue) {
// ask the database manager to delete the row of given id
try {
String whereClause = getWhereClause(compareColumn, compareValue);
db.delete(TABLE_NAME, whereClause, null);
//db.delete(TABLE_NAME, TABLE_ROW_ID + "=" + rowID, null);
} catch (Exception e) {
Log.e("DB DELETE ERROR", e.toString());
e.printStackTrace();
}
}
//the method that returns whereClause
private String getWhereClause(String compareColumn, String compareValue) {
String whereClause = null;
if (compareColumn == null || compareColumn == "") { }
else if (compareValue == null || compareColumn == "") { }
else { whereClause = compareColumn + "=\"" + compareValue + "\""; }
return whereClause;
最佳答案
delete()
使用传入的whereClause
构造类似DELETE FROM <tablename> WHERE <whereClause>
的SQL语句。如果传入的whereClause
是null
,则将省略WHERE <whereClause>
并删除所有行。
您的getWhereClause()
构造一个可以用作whereClause
的表达式,将列与指定的字符串文字值(例如foo="bar"
)进行比较。如果一个为null或为空,则返回null whereClause
,以便所有行都匹配。