数据库,软工,Java综合项目高级功能02-实现模糊查询,多条件查询

该文章描述了一个前端HTML表单用于接收用户输入的姓名、籍贯和邮箱,通过POST方法提交到Servlet进行处理。后端使用JavaServlet接收参数,实现多条件模糊查询,并动态构建SQL语句来匹配输入的内容。查询结果返回给前端展示。整个过程涉及到了内容管理和数据库操作,特别是利用JDBC进行SQL执行。
摘要由CSDN通过智能技术生成

主要需求:

根据上述三个input框,选择输入部分内容,实现多条件查询。

前端:

提交input内容

<form class="form-inline" style="float: left" action="Servlet8" method="post">
       <div class="form-group">
           <label for="exampleInputName2">姓名</label>
           <input type="text" class="form-control" id="exampleInputName2" name="name">
       </div>
       <div class="form-group">
           <label for="exampleInputEmail2">籍贯</label>
           <input type="text" class="form-control" id="exampleInputEmail2" name="location">
       </div>
       <div class="form-group">
           <label for="exampleInputEmail3">邮箱</label>
           <input type="email" class="form-control" id="exampleInputEmail3" name="email">
       </div>
       <button type="submit" class="btn btn-default">查询</button>
   </form>

后端:

接收input内容

实现内容管理,操作数据库

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        String name = request.getParameter("name");
        System.out.println(name);
        String location = request.getParameter("location");
        System.out.println(location);
        String email=request.getParameter("email");
        System.out.println(email);
        String currentPage = request.getParameter("currentPage");
        String rows = request.getParameter("rows");
        if(currentPage==null||"".equals(currentPage)){
            currentPage="1";
        }
        if(rows==null||"".equals(rows)){
            rows="5";
        }
        UserService u = new UserServiceImpl();
        Pagebean<User> pb = null;
        try {
            pb = u.fuzzyQuery(name,location,email,currentPage,rows);
        } catch (SQLException e) {
            e.printStackTrace();
        }
        request.setAttribute("pb", pb);
        request.getRequestDispatcher("/2.6.jsp").forward(request,response);
    }

操作数据库,比较关键,主要是实现动态sql

public static int fuzzyQueryCount(String name,String location,String email) throws SQLException {
        String sql="select count(*) from user1 where 1=1 ";
        String a= String.valueOf(' ');
        if(!Objects.equals(name, a)){
           sql=sql+"and name like '%"+name+"%' ";
        }
        if(!Objects.equals(location, a)){
            sql=sql+"and location like '%"+location+"%' ";
        }
        if(!Objects.equals(email, a)){
            sql=sql+"and email like '%"+email+"%' ";
        }
        System.out.println(sql);
        Connection cnn = JDBCUtils.getConnection();
        Statement stat = cnn.createStatement();
        ResultSet rs = stat.executeQuery(sql);
        if (rs.next()){
            int totalCount=rs.getInt(1);
            JDBCUtils.close(rs,stat,cnn);
            return totalCount;
        }
        JDBCUtils.close(rs,stat,cnn);
        return 0;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值