gpt4 book ai didi

java - public int delete (String table, String whereClause, String[] whereArgs); 中的whereClause如何工作?

转载 作者:行者123 更新时间:2023-12-01 23:05:32 27 4
gpt4 key购买 nike

所以我试图通过传递指定行的 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 语句。万一传入whereClausenullWHERE <whereClause>被省略并且所有行都被删除。

您的getWhereClause()构造一个可用作 whereClause 的表达式,将列与指定的字符串文字值进行比较,例如 foo="bar" 。如果其中之一为 null 或为空,则为 null whereClause返回,因此所有行都匹配。

关于java - public int delete (String table, String whereClause, String[] whereArgs); 中的whereClause如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22837052/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com