学生信息管理系统(五)
模糊查询
功能实现:
代码:
- list.jsp
按姓名查询:<input type="text" name="sname"/>
按性别查询:<select name="gender">
<option value="--请选择--">--请选择--
<option value="男">男
<option value="女">女
</select>
<input type="submit" value="查询">
- SearchStudentServlet
package e.servlet;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import e.domain.Student;
import e.service.StudentService;
import e.service.impl.StudentServiceImpl;
/**
* Servlet implementation class SearchStudentServlet
*/
public class SearchStudentServlet extends HttpServlet {
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
try {
//1.取到了要查询的关键数据姓名,性别。
String sname=request.getParameter("sname");
String gender=request.getParameter("gender");
//2.找service去查询
StudentService service=new StudentServiceImpl();
List<Student> list = service.serchStudent(sname, gender);
System.out.println("list的大小是:"+list.size());
for (Student student : list) {
System.out.println("stu="+student);
}
request.setAttribute("list", list);
//3.跳转界面
request.getRequestDispatcher("list.jsp").forward(request, response);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
- StudentDaoImpl
@Override
public List<Student> serchStudent(String sname, String gender) throws SQLException {
// TODO Auto-generated method stub
System.out.println("现在要执行模糊查询了:"+sname+"==gender=="+gender);
QueryRunner runner=new QueryRunner(JDBCUtil.getDataSource());
String sql="select * from stu where 1=1 ";
List<String>list= new ArrayList<String>();
//判断有没有姓名,有的话就组建到sql里面
if (!TextUtils.isEmpty(sname)) {
sql=sql+"and sname like ?";
list.add("%"+sname+"%");
}
//判断有没有性别,有的话就组建到sql里面
if (!TextUtils.isEmpty(gender)) {
sql=sql+" and gender = ? ";
list.add(gender);
}
return runner.query(sql, new BeanListHandler<Student>(Student.class),list.toArray());
}