码迷,mamicode.com
首页 > 其他好文 > 详细

多条件查询

时间:2020-01-05 13:48:23      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:网上   结果   sql语句   create   getc   文本   name   and   state   

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

技术图片

 

 然后另一个关键就是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;
        }
        
        

最后实现了其中的多条件查询技术图片

 

技术图片

 

 技术图片

多条件查询

标签:网上   结果   sql语句   create   getc   文本   name   and   state   

原文地址:https://www.cnblogs.com/guziteng1/p/12151932.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!