javaweb_day7_增删改查&分页

注意:只显示部分代码

1.查询所有

public class AdminProductListServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		AdminProductService adminProductService=new AdminProductService();
		List<Product> productList=null;
		try {
			productList = adminProductService.findAll();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		request.setAttribute("productList", productList);
		request.getRequestDispatcher("/admin/product/list.jsp").forward(request, response);
	}									

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

2.1增加商品

public class AdminAddProductUIServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		AdminProductService service=new AdminProductService();
		List<Category> categoryList=null;
		try {
			categoryList = service.findAllCategory();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		request.setAttribute("categoryList", categoryList);
		request.getRequestDispatcher("/admin/product/add.jsp").forward(request, response);
		

		
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

2.2真正的添加

public class AdminAddproductServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		AdminProductService service=new AdminProductService();
		Product product=new Product();
		Map<String, String[]>  properties=request.getParameterMap();
		try {
			BeanUtils.populate(product, properties);
			
		} catch (Exception e) {
			e.printStackTrace();
		} 
		//此位置Product已经封装完毕----将表单的数据封装完毕
		//手动设置表单中没有数据
		//手动设置表单中没有的数据
		/*private String pid;
		private String pimage;
		private String pdate;
		private int pflag;*/
		product.setPid(UUID.randomUUID().toString());
		product.setPimage("products/1/c_0001.jpg");
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		String pdate=sdf.format(new Date());
		product.setPdate(pdate);
		product.setPflag(0);
		try {
			service.addProduct(product);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		response.sendRedirect(request.getContextPath()+"/adminProductListServlet");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

3.删除商品

//阻止事件的传播行为

<a href="javascript:void(0);" onclick="delProduct('${product.pid}')">



<script type="text/javascript">
			
			function delProduct(pid){
				var isDel=confirm("您确定要删除么??");
				if(isDel){
					location.href = "${pageContext.request.contextPath }/delProductServlet?pid="+pid; 
				}
			}
			
		</script>





public class DelProductServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		AdminProductService service=new AdminProductService();
		String pid=request.getParameter("pid");
		try {
			service.deleteById(pid);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		response.sendRedirect(request.getContextPath()+"/adminProductListServlet");
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

4.1修改商品(先数据回显)

public class AdminUpdateProductUIServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		AdminProductService service=new AdminProductService();
		String pid=request.getParameter("pid");
		Product product=null;
		try {
			product = service.findProductById(pid);
		} catch (SQLException e1) {
			e1.printStackTrace();
		}
		
		List<Category> categoryList=null;
		try {
			categoryList=service.findAllCategory();
		} catch (SQLException e) {
			e.printStackTrace();
		}
	
		request.setAttribute("product", product);
		request.setAttribute("categoryList", categoryList);
		request.getRequestDispatcher("/admin/product/edit.jsp").forward(request, response);
	
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}







//正常的回显
<td width="18%" align="center" bgColor="#f5fafe" class="ta_01">
						商品名称:
					</td>
					<td class="ta_01" bgColor="#ffffff">
						<input type="text" name="pname" id="userAction_save_do_logonName" class="bg" value="${product.pname }"/>
					</td>

//下拉框的回显
<td class="ta_01" bgColor="#ffffff" colspan="3">
						<select name="cid" id="cid">
							<c:forEach var="category" items="${categoryList }">
								<option value="${category.cid }">${category.cname }</option>
							</c:forEach>
						</select>
					</td>
//textarea回显
<td class="ta_01" bgColor="#ffffff" colspan="3">
						<textarea name="pdesc" rows="5" cols="30"  >${product.pdesc }</textarea>
					</td>



//使用jQuery回显下拉框信息
	<script type="text/javascript">
		$(function(){
			$("#cid option[value='${product.cid}']").prop("selected",true);
		});
	
	
	</script>

//使用js回显下拉框信息
			/* window.onload = function(){
				//获得当前回显的product的cid
				var cid = "${product.cid }";
				//获得所有的<select name="cid">下的option
				var options = document.getElementById("cid").getElementsByTagName("option");
				//比较每一个option的value与cid
				for(var i=0;i<options.length;i++){
					if(cid==options[i].value){
						options[i].selected = true;
					}
				}
			} */

4.2修改商品

修改商品本质上和添加商品没什么区别,主要区别就是页面添加一行代码

<input type="hidden" name="pid" value="${product.pid }">
//后台的pid已经通过request.getParameterMap()传递到了前端了
public class AdminProductUpdateServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		request.setCharacterEncoding("utf-8");
		AdminProductService service=new AdminProductService();
		Map<String, String[]> properties=request.getParameterMap();
		Product product=new Product();
		try {
			BeanUtils.populate(product, properties);
		} catch (Exception e) {
			e.printStackTrace();
		} 
			product.setPimage("products/1/c_0001.jpg");
			SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
			String pdate=sdf.format(new Date());
			product.setPdate(pdate);
			product.setPflag(0);
		
		try {
			service.updateProduct(product);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		response.sendRedirect(request.getContextPath()+"/adminProductListServlet");
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

5.1:按照条件搜索(条件搜索数据回显)

前台:

<script type="text/javascript">	
			$(function(){
				$("#isHot option[value='${condition.isHot}']").prop("selected",true);
				$("#cid option[value='${condition.cid}']").prop("selected",true);
			});
			
		</script>




<form id="Form1" name="Form1"
		action="${pageContext.request.contextPath}/conditionListServlet"
		method="post">
		商品名称:<input type="text"  name="pname" value="${condition.pname}" }>&nbsp;&nbsp;
		是否热门:
		<select name="isHot" id="isHot">
			<option>不限</option>
			<option value="1">是</option>
		    <option value="0">否</option>
		</select>&nbsp;&nbsp;
		商品类别:
		<select name="cid" id="cid">
			<option value="">不限</option>
			<c:forEach var="category" items="${categoryList}">
				<option value="${category.cid}">${category.cname}</option>
			</c:forEach>
		</select>&nbsp;&nbsp;
		&nbsp;&nbsp;
		<input type="submit" value="搜索">

后台:

//将条件封装成实体
public class ConditionVO {
	private String pname;
	private String isHot;
	private String cid;
	
}



//Controller
public class ConditionListServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		AdminProductService service=new AdminProductService();
		request.setCharacterEncoding("utf-8");
		Map<String, String[]> properties=request.getParameterMap();
		ConditionVO condition=new ConditionVO();
		try {
			BeanUtils.populate(condition, properties);
		} catch (Exception e) {
			e.printStackTrace();
		} 
		List<Product> productList=null;
		List<Category> categoryList=null;
		try {
			productList = service.findProductByCondition(condition);
			categoryList=service.findAllCategory();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		request.setAttribute("condition", condition);
		request.setAttribute("productList", productList);
		request.setAttribute("categoryList",categoryList);
		request.getRequestDispatcher("/admin/product/list.jsp").forward(request, response);
		
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}


//dao
public List<Product> findProductByCondition(ConditionVO condition) throws SQLException {
		String sql="select * from product where 1=1";
		//定义一个容器存储参数
		List<String> list=new ArrayList<String>();
		if(condition.getPname()!=null&&!condition.getPname().trim().equals("")){
			sql+=" and pname like ?";
			list.add("%"+condition.getPname().trim()+"%");
		}		
		if(condition.getIsHot()!=null&&!condition.getIsHot().trim().equals("")){
			sql+=" and is_hot=?";
			list.add(condition.getIsHot().trim());
		}	
		if(condition.getCid()!=null&&!condition.getCid().trim().equals("")){
			sql+=" and cid=?";
			list.add(condition.getCid().trim());
		}	
		return queryRunner.query(sql, new BeanListHandler<Product>(Product.class),list.toArray());
	}

5.2前台的分页

//PageBean实体类,set和get方法省略
public class PageBean<T> {
	private int currentPage;
	private int pageSize;
	private int totalPage;
	private int totalSize;
	private List<T> products=new ArrayList<T>();



//Controller
public class ProductListServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		ProductService servcie=new ProductService();
		
		//传入当前页和当前页显示的条数   
		String currentPageStr=request.getParameter("currentPage");
		if(currentPageStr==null){
			currentPageStr="1";
		}
		int currentPage=Integer.parseInt(currentPageStr);
		int pageSize=12;
		PageBean<Product> pageBean=null;
		try {
			pageBean=servcie.findPageBean(currentPage,pageSize);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		request.setAttribute("pageBean", pageBean);
		request.getRequestDispatcher("/product_list.jsp").forward(request, response);
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}

//service
public class ProductService {
	public PageBean findPageBean(int currentPage, int pageSize) throws SQLException {
		ProductDao dao=new ProductDao();
		PageBean pageBean=new PageBean();
		pageBean.setCurrentPage(currentPage);
		pageBean.setPageSize(pageSize);
		int totalSize=dao.findTotalCount();
		pageBean.setTotalSize(totalSize);
//		总页数
		int totalPage=totalSize%pageSize==0?totalSize/pageSize:totalSize/pageSize+1;
		pageBean.setTotalPage(totalPage);
//		每页显示的数据
		int index=(currentPage-1)*pageSize;
		List<Product> productList=dao.findProductListByPageBean(index,pageSize);
		pageBean.setProducts(productList);
		return pageBean;
	}

}

//dao
public class ProductDao {

	public List<Product> findAllProduct() throws SQLException {
		QueryRunner runner=new QueryRunner(DataSourceUtils.getDataSource());
		String sql="select * from product";
		return runner.query(sql, new BeanListHandler<Product>(Product.class));
	}
	//获得全部的商品条数
	public int findTotalCount() throws SQLException {
		QueryRunner runner=new QueryRunner(DataSourceUtils.getDataSource());
		String sql="select count(*) from product";
		Long query = (Long) runner.query(sql, new ScalarHandler());
		return query.intValue();
	}

	//获得分页的商品数据
	public List<Product> findProductListByPageBean(int index, int pageSize) throws SQLException {
		QueryRunner runner=new QueryRunner(DataSourceUtils.getDataSource());
		String sql="select * from product limit ?,?";
		Object[] obj={index,pageSize};
		return runner.query(sql, new BeanListHandler<Product>(Product.class),obj);
	}

}


//页面
	<c:forEach var="product" items="${pageBean.products}">
			<div class="col-md-2" style="height:250px">
				<a href="product_info.htm"> <img src="${pageContext.request.contextPath }/${product.pimage }"
					width="170" height="170" style="display: inline-block;">
				</a>
				<p>
					<a href="product_info.html" style='color: green'>${product.pname }</a>
				</p>
				<p>
					<font color="#FF0000">商城价:&yen;${product.shop_price }</font>
				</p>
			</div>
		</c:forEach>




<!--分页 -->
	<div style="width: 380px; margin: 0 auto; margin-top: 50px;">
		<ul class="pagination" style="text-align: center; margin-top: 10px;">
			
			<!-- 上一页 -->
			<!-- 判断当前页是否是第一页 -->
			<c:if test="${pageBean.currentPage==1 }">
				<li class="disabled">
					<a href="javascript:void(0);" aria-label="Previous">
						<span aria-hidden="true">&laquo;</span>
					</a>
				</li>
			</c:if>
			
				<c:if test="${pageBean.currentPage!=1 }">
				<li>
					<a href="${pageContext.request.contextPath }/productListServlet?currentPage=${pageBean.currentPage-1}" aria-label="Previous">
						<span aria-hidden="true">&laquo;</span>
					</a>
				</li>
			</c:if>
			
		

			
			<!-- 判断当前页 -->
			<c:forEach var="page" begin="1" end="${pageBean.totalPage }">
			<c:if test="${pageBean.currentPage==page}">
				<li class="active"><a href="javascript:void(0);">${page }</a></li>
			</c:if>
			<c:if test="${pageBean.currentPage!=page}">
				<li ><a href="${pageContext.request.contextPath }/productListServlet?currentPage=${page}">${page}</a></li>
			</c:if>
				
			</c:forEach>
			
			
			<!-- 下一页 -->
			<!-- 判断当前页是否是最后一页 -->
			<c:if test="${pageBean.currentPage==pageBean.totalPage }">
				<li class="disabled">
					<a href="javascript:void(0);" aria-label="Next">
						<span aria-hidden="true">&raquo;</span>
					</a>
				</li>
			</c:if>
			
				<c:if test="${pageBean.currentPage!=pageBean.totalPage }">
				<li>
					<a href="${pageContext.request.contextPath }/productListServlet?currentPage=${pageBean.currentPage+1}" aria-label="Next">
						<span aria-hidden="true">&raquo;</span>
					</a>
				</li>
			</c:if>				
			
		</ul>
	</div>
	<!-- 分页结束 -->

 

6.1批量删除选中(在外面加个form提交即可)

//后台代码
public class DelSelectServlet extends HttpServlet {

	public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String [] ids=request.getParameterValues("uid");
		AdminProductService service=new AdminProductService();
		try {
			service.deleteSelectIds(ids);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		response.sendRedirect(request.getContextPath()+"/adminProductListServlet");
	}

	public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}
}


public void deleteSelectIds(String[] ids) throws SQLException {
		if(ids !=null && ids.length>0){
			for(String pid:ids){
				adminProductDao.deleteById(pid);
			}
		}
		
	}

public void deleteById(String pid) throws SQLException {
		String sql="delete from product where pid=?";
		queryRunner.update(sql, pid);
		
	}

6.2批量删除选中(提高用户体验:如全选和全不选,删除之前给提示,批量删除至少选中一个)

全选和全不选JS代码实现

这个是另一个项目中的   页面批量删除多个用户    分页以及复杂条件分页查询的内容

页面批量删除多个用户

<form action="${pageContext.request.contextPath}/DelUsersServlet" method="post" id="form">
    <table border="1" class="table table-bordered table-hover">
        <tr>
            <td colspan="8" align="center">
                <a class="btn btn-primary" href="${pageContext.request.contextPath}/add.jsp">添加联系人</a>
                <a class="btn btn-primary" href="javascript:void(0);" id="delAll">批量删除用户</a>
            </td>

        </tr>

        <tr class="success">
            <th><input type="checkbox" id="checkAll"> </th>
            <th>编号</th>
            <th>姓名</th>
            <th>性别</th>
            <th>年龄</th>
            <th>籍贯</th>
            <th>QQ</th>
            <th>邮箱</th>
            <th>操作</th>
        </tr>
        <c:forEach var="user" items="${userList}">
            <tr>
                <td><input type="checkbox" name="checkone" value="${user.id}"></td>
                <td>${user.id}</td>
                <td>${user.name}</td>
                <td>${user.gender}</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.html">修改</a>&nbsp;<a class="btn btn-default btn-sm" href="javascript:;" onclick="del('${user.id}')">删除</a></td>
            </tr>
        </c:forEach>

    </table>
    </form>




 window.onload=function () {
        document.getElementById("delAll").onclick=function () {
            if(confirm("您确认要删除选中的多个用户吗?")){
                var flag=false;
                var names = document.getElementsByName("checkone");
                for(var i=0;i<names.length;i++){
                    if(names[i].checked){
                        flag=true;
                        break;
                    }
                }
                if(flag){
                    document.getElementById("form").submit();
                }
            }
        }

    }


后台:

String[] checkone = request.getParameterValues("checkone");

分页

public class PageBean<T> {
    private int currentPage;
    private int pageSize;
    private int totlaCount;
    private int totalPage;
    private List<T> list;
}


@WebServlet("/ShowPageListServlet")
public class ShowPageListServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        UserService service=new UserServiceImpl();
        String currentPageStr = request.getParameter("currentPage");
        String pageSizeStr = request.getParameter("pageSize");
        if(currentPageStr==null || "".equals(currentPageStr)){
            currentPageStr="1";

        }
        if(pageSizeStr==null  ||  "".equals(pageSizeStr)){
            pageSizeStr="3";
        }
        PageBean<User> pageBean=service.showPageList(currentPageStr,pageSizeStr);
        request.setAttribute("pageBean",pageBean);
        request.getRequestDispatcher("/list.jsp").forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }
}

PageBean<User> showPageList(String currentPageStr, String pageSizeStr);


public PageBean<User> showPageList(String currentPageStr, String pageSizeStr) {
        PageBean pageBean=new PageBean();
        int currentPage = Integer.parseInt(currentPageStr);
        int pageSize = Integer.parseInt(pageSizeStr);
        if(currentPage<=0){
            currentPage=1;
        }
        pageBean.setPageSize(pageSize);
        pageBean.setCurrentPage(currentPage);
        int totalCount=dao.findTotalCount();
        pageBean.setTotlaCount(totalCount);
        int totalPage=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
        pageBean.setTotalPage(totalPage);
        int index=(currentPage-1)*pageSize;
        List<User> userList=dao.findListByPage(index,pageSize);
        pageBean.setList(userList);
        return pageBean;
    }


int findTotalCount();
List<User> findListByPage(int index,int pageSize);

    public int findTotalCount() {
        String sql="select count(1) from user";
        return jdbcTemplate.queryForObject(sql,Integer.class);
    }

    public List<User> findListByPage(int index, int pageSize) {
        String sql="select * from user limit ?,?";
        return jdbcTemplate.query(sql,new BeanPropertyRowMapper<User>(User.class),index,pageSize);
    }



页面
<nav aria-label="Page navigation">
            <%--前一页--%>
            <ul class="pagination">
                <c:if test="${pageBean.currentPage==1}">
                    <li class="disabled">
                        <a href="javascript:void(0);" aria-label="Previous">
                            <span aria-hidden="true">&laquo;</span>
                        </a>
                    </li>
                </c:if>
                <c:if test="${pageBean.currentPage!=1}">
                    <li>
                        <a href="${pageContext.request.contextPath}/ShowPageListServlet?currentPage=${pageBean.currentPage -1}&pageSize=3" aria-label="Previous">
                            <span aria-hidden="true">&laquo;</span>
                        </a>
                    </li>
                </c:if>
                <%--当前页--%>
                <c:forEach begin="1" end="${pageBean.totalPage}" var="page">
                    <c:if test="${pageBean.currentPage == page}">
                        <li class="active"><a href="javascript:void(0);">${page}</a></li>
                    </c:if>
                    <c:if test="${pageBean.currentPage!=page}">
                        <li><a href="${pageContext.request.contextPath}/ShowPageListServlet?currentPage=${page}&pageSize=3">${page}</a></li>
                    </c:if>
                </c:forEach>

                <%--后一页--%>
                <c:if test="${pageBean.currentPage==pageBean.totalPage}">
                    <li class="disabled">
                        <a href="javascript:void(0);" aria-label="Previous">
                            <span aria-hidden="true">&raquo;</span>
                        </a>
                    </li>
                </c:if>

                <c:if test="${pageBean.currentPage!=pageBean.totalPage}">
                    <li>
                        <a href="${pageContext.request.contextPath}/ShowPageListServlet?currentPage=${pageBean.currentPage +1}&pageSize=3" aria-label="Previous">
                            <span aria-hidden="true">&raquo;</span>
                        </a>
                    </li>
                </c:if>

            </ul>
        </nav>

复杂条件分页查询

 

排除当前页和每页显示的条数

 

 

 

@WebServlet("/ShowPageListServlet")
public class ShowPageListServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        UserService service=new UserServiceImpl();
        String currentPageStr = request.getParameter("currentPage");
        String pageSizeStr = request.getParameter("pageSize");
        if(currentPageStr==null || "".equals(currentPageStr)){
            currentPageStr="1";

        }
        if(pageSizeStr==null  ||  "".equals(pageSizeStr)){
            pageSizeStr="3";
        }
        //条件查询
        Map<String, String[]> condition = request.getParameterMap();
        PageBean<User> pageBean=service.showPageList(currentPageStr,pageSizeStr,condition);
        request.setAttribute("pageBean",pageBean);
        //将查询条件存入request
        request.setAttribute("condition",condition);
        request.getRequestDispatcher("/list.jsp").forward(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        this.doPost(request, response);
    }



public PageBean<User> showPageList(String currentPageStr, String pageSizeStr, Map<String, String[]> condition) {
        PageBean pageBean=new PageBean();
        int currentPage = Integer.parseInt(currentPageStr);
        int pageSize = Integer.parseInt(pageSizeStr);
        if(currentPage<=0){
            currentPage=1;
        }
        pageBean.setPageSize(pageSize);
        pageBean.setCurrentPage(currentPage);
        int totalCount=dao.findTotalCount(condition);
        pageBean.setTotlaCount(totalCount);
        int totalPage=totalCount%pageSize==0?totalCount/pageSize:totalCount/pageSize+1;
        pageBean.setTotalPage(totalPage);
        int index=(currentPage-1)*pageSize;
        List<User> userList=dao.findListByPage(index,pageSize,condition);
        pageBean.setList(userList);
        return pageBean;
    }




public int findTotalCount(Map<String, String[]> condition) {
        String sql="select count(1) from user where 1=1";
        StringBuilder sb = new StringBuilder(sql);
        Set<String> keys = condition.keySet();
        //定义参数的集合
        List<Object> list=new ArrayList<>();
        for(String key: keys){
            //排除分页条件参数
            if("currentPage".equals(key) || "pageSize".equals(key)){
                continue;
            }
            //获取value
            String value = condition.get(key)[0];
            //判断value是否有值
            if(value != null && !"".equals(value)){
                //有值
                sb.append(" and "+key+" like ? ");
                list.add("%"+value+"%");//加?条件的值
            }
        }
        return jdbcTemplate.queryForObject(sb.toString(),Integer.class,list.toArray());
    }



    public List<User> findListByPage(int index, int pageSize, Map<String, String[]> condition) {
        String sql="select * from user where 1=1";
        StringBuilder sb = new StringBuilder(sql);
        Set<String> keys = condition.keySet();
        List<Object> list=new ArrayList<>();
        for(String key: keys){
            //排除分页条件参数
            if("currentPage".equals(key) || "pageSize".equals(key)){
                continue;
            }
            //获取value
            String value = condition.get(key)[0];
            //判断value是否有值
            if(value != null && !"".equals(value)){
                //有值
                sb.append(" and "+key+" like ? ");
                list.add("%"+value+"%");//?条件的值
            }
        }
        //添加分页查询
        sb.append(" limit ?,? ");
        //添加分页查询参数值
        list.add(index);
        list.add(pageSize);
        sql = sb.toString();
        return jdbcTemplate.query(sql,new BeanPropertyRowMapper<User>(User.class),list.toArray());
    }



<div style="float: left;">
        <form class="form-inline" action="${pageContext.request.contextPath}/ShowPageListServlet" method="post">
            <div class="form-group">
                <label for="exampleInputName2">姓名</label>
                <input type="text" name="name" value="${condition.name[0]}" class="form-control" id="exampleInputName2" >
            </div>
            <div class="form-group">
                <label for="exampleInputName3">籍贯</label>
                <input type="text" name="address" value="${condition.address[0]}" class="form-control" id="exampleInputName3" >
            </div>

            <div class="form-group">
                <label for="exampleInputEmail2">邮箱</label>
                <input type="text" name="email" value="${condition.email[0]}" class="form-control" id="exampleInputEmail2"  >
            </div>
            <button type="submit" class="btn btn-default">查询</button>
        </form>

    </div>

分页的地方记得也要将条件放上去
<a href="${pageContext.request.contextPath}/ShowPageListServlet?currentPage=${pageBean.currentPage -1}&pageSize=3&name=${condition.name[0]}&address=${condition.address[0]}&email=${condition.email[0]}" aria-label="Previous">
                            <span aria-hidden="true">&laquo;</span>
                        </a>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的JavaWeb用户管理的增删改查的示例: 1. 创建数据库表 首先,我们需要创建一个名为"users"的数据库表,包含以下字段:id(主键,自增)、username、password、email。 2. 创建JavaBean 创建一个名为User的JavaBean,包含与数据库表字段对应的属性和相应的getter和setter方法。 3. 创建DAO类 创建一个名为UserDAO的DAO类,用于与数据库进行交互。该类应包含以下方法: - addUser(User user):向数据库中添加用户 - deleteUser(int id):根据用户id删除数据库中的用户 - updateUser(User user):更新数据库中的用户信息 - getUserById(int id):根据用户id从数据库中获取用户信息 - getAllUsers():从数据库中获取所有用户信息 4. 创建Servlet 创建一个名为UserServlet的Servlet类,用于处理用户请求。该类应包含以下方法: - doGet(HttpServletRequest request, HttpServletResponse response):处理GET请求,根据请求参数执行相应的操作(增删改查) - doPost(HttpServletRequest request, HttpServletResponse response):处理POST请求,根据请求参数执行相应的操作(增删改查) 5. 编写JSP页面 创建一个名为user.jsp的JSP页面,用于展示用户信息和接收用户输入。该页面应包含以下内容: - 一个表格用于展示用户信息 - 一个表单用于添加或编辑用户信息 - 按钮用于执行相应的操作(增删改查) 6. 配置web.xml 在web.xml文件中配置UserServlet的映射路径。 以上是一个简单的JavaWeb用户管理的增删改查的示例,你可以根据实际需求进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

guoyebing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值