0

我有一个 sql select 语句,通过从 jComboBox 和 jDateChooser 获取用户输入信息,通过 jButton 在我的 jtable 上显示查询。

是否可以为按钮设置条件,例如

下面是 jButton 动作监听器的代码

    java.util.Date dateFromDateChooser = jDateChooser.getDate();
    String dateString = String.format("%1$tY-%1$tm-%1$td", dateFromDateChooser);  

    String attendant = (String) cbName.getSelectedItem();
    String fill = "SELECT id as 'No', recDate as 'Date', super as 'Supervisor', attendant as 'Attendant' from log"
            + "WHERE recDate = '"+dateString+"'"
            + "and attendant = '" + attendant + "'";

    try{

        ps = conn.prepareStatement(fill);
        rs = ps.executeQuery();    
        jTable1.setModel(DbUtils.resultSetToTableModel(rs));

    }
    catch(Exception e){
        JOptionPane.showMessageDialog(null, e);
    }

上面的代码工作正常,但我希望允许用户使用两种类型的条件。例如通过选择“日期和 jComboBox”或仅选择“日期”来显示搜索结果

对于这种情况,我可以使用 if else 语句吗?

请指教...

在此处输入图像描述

4

2 回答 2

1

为您的 SQL 构建添加检查

String fill = "SELECT id as 'No', recDate as 'Date', super as 'Supervisor', attendant as 'Attendant' from log"
        + "WHERE recDate = '"+dateString+"'";

if(comboboxShouldBeIncluded) {
        fill+= " and attendant = '" + attendant + "'";
}
于 2013-01-17T05:52:19.693 回答
1

如果未选择姓名,则无服务员查询

String attendant = (String) cbName.getSelectedItem();
    String qry;
    if( attendant != null && !attendant.isEmpty() ) {
     qry = "SELECT id as 'No', recDate as 'Date', super as 'Supervisor', attendant as 'Attendant' from log"
            + "WHERE recDate = '"+dateString+"'"
            + "and attendant = '" + attendant + "'";
    } else {
        qry = "SELECT id as 'No', recDate as 'Date', super as 'Supervisor', attendant as 'Attendant' from log"
            + "WHERE recDate = '"+dateString+"'";
    }
于 2013-01-17T06:01:10.393 回答