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;
            }
            
            

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

     

  • 相关阅读:
    vscode入门使用教程(页面调试)
    .net core3.1开始页面实时编译
    Ubuntu 编辑文件、安装、删除软件等常用命令(持续更新)
    .NetCore3.1中的WebApi如何配置跨域
    PC电脑端如何多开Skype,一步搞定!
    简单几步为博客园添加动态动漫妹子
    如何在SqlServer中使用层级节点类型hierarchyid
    Entity framework Core 数据库迁移
    牛客网剑指offer【Python实现】——part1
    Linux实战——Shell编程练习(更新12题)
  • 原文地址:https://www.cnblogs.com/guziteng1/p/12151932.html
Copyright © 2011-2022 走看看