Java搜索选项

时间:2011-09-28 21:25:11

标签: java sql oracle

我有下拉列表名列表。当用户选择列名并输入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 ");
}

3 个答案:

答案 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)

有一个工具,称为调试器。