Java MYSQL,搜索时忽略空白字符串

Java MYSQL,搜索时忽略空白字符串,java,mysql,search,jdbc,boolean,Java,Mysql,Search,Jdbc,Boolean,我试图搜索多个表,但用户并没有给出每个输入。例如,如果用户不想搜索名称,我想搜索用户输入的所有内容,而忽略这些内容。 我尝试了以下代码,但除非提供了所有字符串,否则它将无法工作。是否有任何方法可以忽略这一点,并使用用户提供的信息继续搜索 public void BuscarCita(String aiDee, String namey, String lastNamey,String date, String horay, String miny) { try{ Stri

我试图搜索多个表,但用户并没有给出每个输入。例如,如果用户不想搜索名称,我想搜索用户输入的所有内容,而忽略这些内容。 我尝试了以下代码,但除非提供了所有字符串,否则它将无法工作。是否有任何方法可以忽略这一点,并使用用户提供的信息继续搜索

    public void BuscarCita(String aiDee, String namey, String lastNamey,String date, String horay, String miny) {
    try{
    String query=("SELECT citas.FECHA,citas.HORA,citas.MIN,citas.NOMBRE,citas.APELLIDO,citas.ID,citas.MOTIVO,user.TELEFONO,user.COMENTARIO  "
                + "from dentista.citas, dentista.user  WHERE citas.FECHA='"+date+"'"+"AND user.ID='" + aiDee+"'"+"AND citas.NOMBRE='" + namey+"'"+"AND citas.APELLIDO='" + 
                lastNamey+"'"+"AND citas.HORA='" + horay+"'"+"AND citas.MIN='" + miny+"'"+"AND citas.ID='" + aiDee+"'");
    Statement st=conn.createStatement();
    ResultSet rs=st.executeQuery(query);
    Object[] rows=null;
    while(rs.next()){
        String nomme=rs.getString("NOMBRE");
        String lnomme=rs.getString("APELLIDO");
        String datey=rs.getString("FECHA");
        String timeyH=rs.getString("HORA");
        String timeyM=rs.getString("MIN");
        String ID=rs.getString("ID");
        String reason=rs.getString("MOTIVO");
        String tel=rs.getString("TELEFONO");
        String comment=rs.getString("COMENTARIO");      
                rows=new Object[]{datey,timeyH+":"+timeyM,nomme +" "+ lnomme, tel, reason,comment};
                MainWindow.mainTableModel.addRow(rows);
    }



    }catch(Exception ex){
        System.out.println(ex);
    }
}

你可以这样做:

String query =" Select * from table where ";
if (!name.isEmpty()){
query+= "where name='"+name+"'";}
if (!lastName.isEmpty()){
query+= "AND lastName='"+lastName+"'";
}
...

然后执行查询

您可以使用我的代码重试

public String trim(String input) {
    if(input == null || input.trim().length()<1) {
        return "%";
    } else {
        return input.trim();
    }
}

public void BuscarCita(String aiDee, String namey, String lastNamey,
        String date, String horay, String miny) {
    try {
        String query = "SELECT citas.FECHA,citas.HORA,citas.MIN,citas.NOMBRE,citas.APELLIDO,citas.ID,citas.MOTIVO,user.TELEFONO,user.COMENTARIO "
                + "FROM dentista.citas, dentista.user "
                + "WHERE citas.FECHA= ? AND user.ID= ? AND citas.NOMBRE= ? AND citas.APELLIDO= ? AND citas.HORA= ? AND citas.MIN= ? AND citas.ID=?";
        PreparedStatement st = conn.prepareStatement(query);
        st.setString(1, trim(date));
        st.setString(2, trim(aiDee));
        st.setString(3, trim(namey));
        st.setString(4, trim(lastNamey));
        st.setString(5, trim(horay));
        st.setString(6, trim(miny));
        st.setString(7, trim(aiDee));

        ResultSet rs = st.executeQuery(query);
        Object[] rows = null;
        while (rs.next()) {
            String nomme = rs.getString("NOMBRE");
            String lnomme = rs.getString("APELLIDO");
            String datey = rs.getString("FECHA");
            String timeyH = rs.getString("HORA");
            String timeyM = rs.getString("MIN");
            String ID = rs.getString("ID");
            String reason = rs.getString("MOTIVO");
            String tel = rs.getString("TELEFONO");
            String comment = rs.getString("COMENTARIO");
            rows = new Object[] { datey, timeyH + ":" + timeyM,
                    nomme + " " + lnomme, tel, reason, comment };
            MainWindow.mainTableModel.addRow(rows);
        }

    } catch (Exception ex) {
        System.out.println(ex);
    }
}
公共字符串修剪(字符串输入){

如果(input==null | | input.trim().length()检查答案,如果这是您想要的,则将问题标记为已解决