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

标签 java mysql search jdbc boolean

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

    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+"'";
}
...

然后执行查询

关于Java MYSQL,搜索时忽略空白字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21371938/

相关文章:

java - Android:包含/重新打包引用 javax 核心类的依赖项时出错

使用 {} 大括号的 Java String replaceAll() 方法

python - 如何获取列表中随机选择的行的索引(Python)

python - 检查字符串列表的所有元素是否在字符串中的最快方法

php - sphinx 搜索 Laravel 5.2 "Nothing to publish for tag []."

java - GC 分配的堆空间为 2048 mb 后,堆内存未释放小于 1200 mb

java - 如何在 Java 中使用带值的终端参数?

php - 为什么我不应该在 PHP 中使用 mysql_* 函数?

php - 如何将具有相同名称的行合并到使用两个 foreach 获取数据的行中

php - while 循环内部 if 语句困惑