版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_42986107/article/details/83118184
准备工作就不在介绍了, 可以参考查询所有用户信息的案例:
https://blog.csdn.net/qq_42986107/article/details/83117451
Servlet -> Condifition.java
@WebServlet("/selectBycondition")
public class ConditionServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html; charset=utf-8");
// 获取传递过来的参数(查询条件)
String sex = request.getParameter("sex");
String address = request.getParameter("address");
// 创建UserService对象 , 并调用其方法.1
UserService us = new UserService();
List<User> user = us.selectByCondition(sex,address);
// 将信息设置到域中
request.setAttribute("user",user);
// 将选择的条件也设置到域中 , 方便回显.
request.setAttribute("sex",sex);
request.setAttribute("address",address);
// 请求转发到list页面 ,进行展示.
request.getRequestDispatcher(request.getContextPath()+"/list.jsp").forward(request,response);
}
}
Service层 -> UserService.java
public class UserService {
// 调用UserDao对象中的方法 ,
UserDao ud = new UserDao();
// 根据条件查询数据.
public List<User> selectByCondition(String sex, String address) {
return ud.selectByCondition(sex,address);
}
}
Dao层 -> UserDao.java
public class UserDao {
// 根据条件 , 查询数据.
public List<User> selectByCondition(String sex, String address) {
// 创建QueryRunner对象.
QueryRunner qr = new QueryRunner(DataSourceUtil.getDataSource());
// 创建sql语句.
String sql = "select * from user where 1=1 ";
// 创建一个集合 , 对两个条件进行判断 , 否和就添加进去.
List list = new ArrayList();
// 如果查询条件不为空 , 就添加查询条件.
if (sex!=null&&sex.trim().length()>0){
sql+=" and sex=? ";
list.add(sex);
}
if(address!=null&&address.trim().length()>0){
sql+=" and address=? ";
list.add(address);
}
// 执行sql
try {
return qr.query(sql,new BeanListHandler<>(User.class),list.toArray());
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
展示页面 -> list.jsp
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<!-- 网页使用的语言 -->
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>用户信息管理系统</title>
<!-- 1. 导入CSS的全局样式 -->
<link href="resource/css/bootstrap.min.css" rel="stylesheet">
<!-- 2. jQuery导入,建议使用1.9以上的版本 -->
<script src="resource/js/jquery-2.1.0.min.js"></script>
<!-- 3. 导入bootstrap的js文件 -->
<script src="resource/js/bootstrap.min.js"></script>
<style type="text/css">
td, th {
text-align: center;
}
</style>
</head>
<body>
<div class="container">
<h3 style="text-align: center">用户信息列表</h3>
<table border="1" class="table table-bordered table-hover">
<tr>
<td colspan="8">
<%-- action默认不写就是本地址 --%>
<form action="">
性别:
<select name="sex">
<option value="">---请选择---</option>
<%-- 进行信息回显.--%>
<c:if test="${empty sex}">
<option value="男">男</option>
<option value="女">女</option>
</c:if>
<%-- 如果选中男,就回显男 --%>
<c:if test="${sex=='男'}">
<option value="男" selected>男</option>
<option value="女">女</option>
</c:if>
<c:if test="${sex=='女'}">
<option value="男">男</option>
<option value="女" selected>女</option>
</c:if>
</select>
籍贯:<input type="text" name="address" placeholder="城市名称..." value="${address}" >
<input type="submit" value="查询用户">
</form>
</td>
</tr>
<tr class="success">
<th>编号</th>
<th>姓名</th>
<th>性别</th>
<th>年龄</th>
<th>籍贯</th>
<th>QQ</th>
<th>邮箱</th>
<th>操作</th>
</tr>
<c:forEach items="${user}" var="user">
<tr>
<td>${user.id}</td>
<td>${user.name}</td>
<td>${user.sex}</td>
<td>${user.age}</td>
<td>${user.address}</td>
<td>${user.qq}</td>
<td>${user.email}</td>
<td>
<a class="btn btn-default btn-sm" href="update.jsp">修改</a>
<a class="btn btn-default btn-sm" href="javascript:;" onclick="userDel(${user.id})">删除</a>
</td>
</tr>
</c:forEach>
<tr>
<td colspan="8" align="center"><a class="btn btn-primary" href="add.jsp">添加联系人</a></td>
</tr>
</table>
</div>
</body>
</html>