我有下拉列表名列表。当用户选择列名并输入serach值时,我填充页面但是如果他们不输入搜索值但是选择了下拉列名称之一,我试图从表中提取所有内容。我尝试这样做,如果搜索值为null不要寻找where子句直接去其他但这对我不起作用。可以有人告诉我我在这里做错了什么?谢谢
sql.append(" SELECT id, name, dept, email");
if ((this.getSearch() != null)&& (this.getSelected().equals("1"))){
sql.append(" from table ");
sql.append(" where id = '");
sql.append(this.getSearch());
sql.append("'");
}else if ((this.getSearch() != null)&& (this.getSelected().equals("2"))){
sql.append(" from table ");
sql.append(" where name = '");
sql.append(this.getSearch());
sql.append("'");
}else{
sql.append(" from table ");
}
答案 0 :(得分:0)
也许this.getSearch()
不返回null
,而是返回空字符串或包含空格字符的字符串。你已经清理过那个String吗?
答案 1 :(得分:0)
每当处理从我没写的代码返回的String时,我通常首先检查NULL,然后检查零长度字符串:
String str = myClass.getMyString();
if (str == null || str.length() < 1) {
/* Failure case */
} else {
/* Success case */
}
上面的代码假设返回值方法表明零长度字符串是一种失败模式,所以请记住这一点。
答案 2 :(得分:0)
有一个工具,称为调试器。