zoukankan      html  css  js  c++  java
  • 多条件查询

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

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

    然后将servlet中的list传到 dao层

    public static  List<Grade>list(List<Object>m,    List<Object>n ,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<m.size();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<m.size();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<m.size();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);
                List<Grade>list=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;
            }
            
            

    最后实现了其中的多条件查询

     

  • 相关阅读:
    从原理层面掌握@InitBinder的使用【享学Spring MVC】
    array详解
    forward_list详解
    list详解
    deque详解
    vector详讲(三)实例
    vector详讲(二)迭代器
    vector详讲(一)
    numeric_limits<>函数
    seek()和tell()在文件里转移
  • 原文地址:https://www.cnblogs.com/guziteng1/p/12151932.html
Copyright © 2011-2022 走看看