1.首先要在前台的界面上定义两个文本框,并且两个文本框都有自己的name的值,文本框的样式自己设计,点击查询的时候,会向form表单中的action跳转
<DIV class="am-input-group am-input-group-sm" style="width:400px;"> <form action="${pageContext.request.contextPath}/employee?action=select2" method="post"> <div> <p>姓名:</p> <SPAN class="am-input-group-btn"> <INPUT name="name" type="text" > //定义文本框的类型 <input type="submit" value="查询">//查询按钮 </SPAN> </div> <div> <p>员工编号:</p> <SPAN> <INPUT name="no" type="text"> </SPAN> </div> </form> </DIV>
2.在java中的servlet文件中写action=select2的方法,点击查询的时候,跳转到这个servlet文件中
else if(action != null && action.equals("select2")) { //接收表单的值 String no = ""; String name = ""; //判断no和name文本框是否为空 no=request.getParameter("no")==null?"":request.getParameter("no"); name=request.getParameter("name")==null?"":request.getParameter("name"); //定义employeeDao EmployeeDao employeeDao = new EmployeeDao(); try { //定义一个集合并且从employeeDao中调用查询的方法 List employeeList = employeeDao.chaxun(no, name); /*System.out.println(employeeList);*/ //将employeeList的值赋给employeeList request.setAttribute("employeeList",employeeList); } catch (Exception e) { e.printStackTrace(); } //完成之后跳转到employee中的manager.jsp文件中 request.getRequestDispatcher("/employee/manager.jsp").forward(request, response); }
3.在Dao文件中编写查询的方法,和sql语句
public List chaxun(String no,String name) throws Exception{//把no和name作为参数传过来 //编写一个sql语句不是String语句 StringBuffer sql = new StringBuffer("select ID,TASK_USER_ID,TASK_DEPT_ID,EM_NO,EM_XM,EM_XB,EM_SR,EM_ZW,EM_ZZ,EM_SFZH from task_employee"); Connection conn = null; PreparedStatement stmt = null; conn = getConn(); //定义一个employeeList的集合 List employeeList = new ArrayList(); try { //判断no不为空,name为空的时候 if(!no.equals("") && name.equals("")) { sql.append(" where EM_NO like '%"+no+"%'"); } //判断name不为空,no为空的时候 if(!name.equals("") && no.equals("")) { sql.append(" where EM_XM like '%"+name+"%'"); } //判断no和name都不为空的时候 if(!name.equals("") && !no.equals("")) { sql.append(" where EM_NO like'%"+no+"%'and EM_XM like '%"+name+"%'"); } //将sql语句转化为String类型的 String sql1 = sql.toString(); conn = getConn(); stmt = conn.prepareStatement(sql1); ResultSet rs = stmt.executeQuery(); //把结果集中的值取出来,然后放在employee中 while (rs.next()) { Employee e = new Employee(); e.setId(rs.getInt(1)); e.setUserid(rs.getInt(2)); e.setDeptid(rs.getInt(3)); e.setNo(rs.getString(4)); e.setName(rs.getString(5)); e.setSex(rs.getString(6)); e.setBirthday(rs.getDate(7)); e.setDuty(rs.getString(8)); e.setAddress(rs.getString(9)); e.setNumber(rs.getString(10)); employeeList.add(e); } } catch (SQLException e) { e.printStackTrace(); } //返回employeeList的集合 return employeeList; }