基于用户输入的多标准搜索

时间:2014-08-02 06:02:42

标签: java design-patterns

我目前正在开发一个涉及使用JDBC挂钩到一个小型MySQL数据库的小项目。它是一个小应用程序,具有多个JTextField和一些JComboBox,可用于向数据库添加新用户,更新用户,删除用户和搜索用户。

当用户按下查找按钮时,应该能够运行搜索,并查看用户填写的字段,然后从这些字段构建查询。一个例子是用户正在根据名字和姓氏搜索某人:

String query = SELECT * FROM members WHERE firstName = ... and Surname = ...

当程序检测到用户填写了要搜索的数据的字段时,会附加firstName和Surname字段。

我的问题是,我正在尝试找到一种有效的方法来搜索多个条件,而不会出现反模式箭头。防爆。我不希望我的代码看起来像:

if( firstName.getText().length() > 0 )
{
  do_something();

   if( lastName.getText().length() > 0 )
   {
     do_something();

     if( email.getText().length() > 0 )
     {
         do_something();
     }
   }
}

等......但到目前为止,这是我能想到的唯一方法,由于搜索标准的可能组合,这将是可怕的。我在考虑做一个可能(?)帮助的开关,但我不知道该关闭什么。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

如果您使用java.awt.panel,则可以尝试类似

的内容
for(Component component : myPanel.getComponents()) {
  if(component instanceof JTextField) {
    JTextField textField = (JTextField) component;   
    buildYourSearchQuery(textField.getText());
  }
}