Java仅使用switch显示一个SQL结果

时间:2016-03-22 18:04:09

标签: java sql database switch-statement resultset

您好我正在尝试根据时间从数据库中获取设置在不同文本字段中的结果。例如。这是一个约会查看器,我已检索某个日期的数据,但它只是将第一个结果放在文本框中。

    private void appointmentsView(){

    String sqldate  = ((JTextField)appointmentDate.getDateEditor().getUiComponent()).getText();

    try{

    String sql="SELECT appointment_tbl.app_date, appointment_tbl.app_time, patient.Title, patient.first_name, patient.surname, patient.dob FROM appointment_tbl INNER JOIN patient ON appointment_tbl.Customer_ID = patient.Customer_ID where app_date LIKE ('%' || ? || '%') ";
    pst=conn.prepareStatement(sql);
    pst.setString(1,sqldate);
    rs=pst.executeQuery();

    if(rs.next()){
        String appTime=rs.getString("app_time");
        String title=rs.getString("Title");
        String fName=rs.getString("first_name");
        String sName=rs.getString("surname");
        String dob=rs.getString("dob");

        switch (appTime) {
            case "09:00":
                time0900.setText(title+" "+fName+" "+sName+" "+dob);
                break;
            case "09:30":
                time0930.setText(title+" "+fName+" "+sName+" "+dob);
                break;
            case "10:00":
                time1000.setText(title+" "+fName+" "+sName+" "+dob);
                break;
            case "10:30":
                time1030.setText(title+" "+fName+" "+sName+" "+dob);
                break;
            case "11:00":
                time1100.setText(title+" "+fName+" "+sName+" "+dob);
                break;

        }



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

}

1 个答案:

答案 0 :(得分:1)

您的代码if(rs.next())仅返回第一个结果行。 您应该用while(rs.next())替换它以创建一个迭代所有结果的循环。