0

jComboBoxとjDateChooserからユーザー入力情報を取得することにより、jButtonを介してjtableにクエリを表示するSQL selectステートメントがあります。

ボタンに条件を設定することは可能ですか?

以下の 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);
    }

上記のコードは正常に動作していますが、ユーザーに 2 種類の条件のいずれかを許可したいと考えています。「日付と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 に答える