多条件查询

Posted guziteng1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多条件查询相关的知识,希望对你有一定的参考价值。

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

技术图片

 

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

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

 

技术图片

 

 技术图片

以上是关于多条件查询的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL 查询,根据某些条件使用片段。已加载 GraphQL 文件

ThinkPHP数据多条件查询代码问题?

python mongoDB 模糊查询(多条件)

SpringDataJpa多条件查询代码封装

Laravel 5.8 有条件地插入 sql 片段

Mybatis -- 动态Sql概述动态Sql之<if>(包含<where>)动态Sql之<foreach>sql片段抽取