多条件查询

多条件查询自己问题主要困惑于自己不会动态添加文本框所以自己从网上搜索到了一些函数我选择了其中最为简单的一种

多条件查询_第1张图片

 

 然后另一个关键就是sql语句的拼写自己采用了Map parameterMap = req.getParameterMap();来获得所有的关键字然后在其中运用两个List存放其中的关键字和关键字的内容,

多条件查询_第2张图片

 

 

然后将servlet中的list传到 dao层

public static  Listlist(Listm,    Listn ,String b)
        { 
            String sql="select * from test20191117 where 1 = 1 ";
            //select语句
            //select * from tabel_name   这是查询所有,若要查询某一列
            //select column1_name,column2_name,column3_name from table_name
            StringBuilder c=new StringBuilder(sql);
            if(b.equals("binglie"))
            {    String d=" = ";
            for(int i=0;i)
            {
                if(new String((String) m.toArray()[i]).contains("type"))
                {
                c.append("and "+n.toArray()[i]);
                }
                
                if(new String((String) m.toArray()[i]).contains("cipin"))
                        {
                if(new String((String) n.toArray()[i]).contains("jingque"))
                {    
                    
                
                    d=" = ";
                    
                    c.append(d);    
                }
                else
                {
                    d=" like ";
                    c.append(d);
                }
                
                        
                        }
                if(new String((String) m.toArray()[i]).contains("search"))
                {
                    if(d.equals(" like "))
                    {
                        c.append("'%"+n.toArray()[i]+"%' ");
                    }
                
                    else {
                        c.append(" '"+n.toArray()[i]+"' ");

                    }
                
                }
            }}
            else if(b.equals("huozhe"))
            {c.append(" and ");
            String d=" = ";
                for(int i=0;i)
            {
                    if(new String((String) m.toArray()[i]).contains("type"))
                    {    c.append(n.toArray()[i]);}
                    
                    
                    if(new String((String) m.toArray()[i]).contains("cipin"))
                            {
                    if(new String((String) n.toArray()[i]).contains("jingque"))
                    {    d=" = ";
                        c.append(d);    
                    }
                    else
                    {
                        d=" like ";
                        c.append(d);
                    }
                    
                            
                            }
                
                
                    
                
                if(new String((String) m.toArray()[i]).contains("search"))
                {
                    if(d.equals(" like "))
                    {
                        c.append("'%"+n.toArray()[i]+"%' ");

                    }
                    else
                    {
                                    c.append("'"+n.toArray()[i]+"' ");

                    }
                }

                if(new String((String) m.toArray()[i]).contains("xuanze"))    
        {
                    if(new String((String) n.toArray()[i]).contains("binglie"))
                    {System.out.println(i);
            c.append(" and ");}
        else
            {
            c.append(" or ");}
            }

            }
                
            }
            else {
                
            String d=" = ";
                for(int i=0;i)
                {
                    if(new String((String) m.toArray()[i]).contains("type"))
                    {
                    c.append("and "+n.toArray()[i]+d);
                    }
                    if(new String((String) m.toArray()[i]).contains("search"))
                    {
                    c.append("'"+n.toArray()[i]+"' ");
                    }
                    if(new String((String) n.toArray()[i]).contains("buhan"))
                    {
                        d=" != ";
                    }
                    System.out.println(b);
                }
                
                
            }
            System.out.println(b);
            sql=c.toString();
                        System.out.println(sql);
            Listlist=new ArrayList<>();
            //给集合list创造(new)一个存储空间用于存放数据
            
            Connection conn=DBUtil.getConn();
            Statement state=null;
            ResultSet rs=null;
            
            try
            {
                state=conn.createStatement();
                rs=state.executeQuery(sql);
                Grade grade=null;
                while(rs.next()) //这里表示,当rs.next()有值得时候,即收到查询结果
                {
                    String name=rs.getString("name");
                    String sex=rs.getString("sex");
                    String nature=rs.getString("nature");
                    String time=rs.getString("time");
                    String old=rs.getString("old");
                    String select=rs.getString("zhengzhi");
                    String checkbox1=rs.getString("checkbox1");
                    String checkbox2=rs.getString("checkbox2");
                    String checkbox3=rs.getString("checkbox3");
                    String checkbox4=rs.getString("checkbox4");
                     grade=new Grade(name,sex,nature,time,old,select,checkbox1,checkbox2,checkbox3,checkbox4);
                    list.add(grade); //表示,把bean里的数据存入到list当中
                }
                
            }
            
            catch (SQLException e)
            {
                e.printStackTrace();
            }
            
            finally
            {
                DBUtil.close(state, conn);
            }
            return list;
        }
        
         
  
 

最后实现了其中的多条件查询多条件查询_第3张图片

 

多条件查询_第4张图片

 

 多条件查询_第5张图片

你可能感兴趣的:(多条件查询)