40、商品类别管理

学习过程:

昨天完成用户的登录和注册功能,今天我们回到后台完成商品类别和商品的管理,先从比较简单商品类别做起。大家可以先完成后台管理员登录功能,和前途登录差不多,所以这里我就不列出代码的实现了,大家可以下载源码查看。按照计划,我们先完成商品类别的管理,这个功能比较简单,可以先看看静态页面,如下图:

其实主要的功能就是对商品类别进行增删改查操作,通过对商品类别管理,大家可以基本学会如何对MVC三层框架进行开发的一个思路。首先,我们先完成页面的开发,这部分功能美工已经完成,所以我们现在可以先实现dao层的开发工作:

1、dao层的实现

public class GoodsTypesDao extends BaseDao implements IGoodsTypesDao  {
    
	/**
	 * 
	 * @param goodsTypes
	 * @return
	 */
	public int addTypes(GoodsTypes goodsTypes) {
		int result = 0;
		getCon();
		String sql = "insert into goods_types(type_name) values(?)";
		result = exeUpdate(sql, new Object[] {goodsTypes.getTypeName()});

		closeAll();
		return result;
	}

	/**
	 * 
	 * @param id
	 * @return
	 */
	public int delTypes(int id) {
		int result = 0;
		getCon();
		String sql = "delete from goods_types where type_id=?";
		result = exeUpdate(sql, new Object[] {id});

		closeAll();
		return result;
	}

	public int updateTypes(GoodsTypes goodsTypes) {
		int result = 0;
		getCon();
		String sql = "update goods_types set type_name=? where type_id=? ";
		result = exeUpdate(sql, new Object[] {goodsTypes.getTypeName(),goodsTypes.getTypeId()});
		closeAll();
		return result;
	}

	public List<GoodsTypes> getAllTypes() {
		List<GoodsTypes> goodsTypeses=new ArrayList<GoodsTypes>();
		getCon();
		String sql="select * from goods_types ";
		rs=exeQuery(sql, null);
		try {
			while(rs.next()){
				GoodsTypes goodsTypes=new GoodsTypes();
				goodsTypes.setTypeId(rs.getInt("type_id"));
				goodsTypes.setTypeName(rs.getString("type_name"));
				
				goodsTypeses.add(goodsTypes);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		closeAll();
		return goodsTypeses;
	}

	public GoodsTypes getTypesById(int id) {
		GoodsTypes goodsTypes=null;
		getCon();
		String sql="select * from goods_types where type_id=?";
        rs=exeQuery(sql, new Object[]{id});
        try {
			if(rs.next()){
				goodsTypes=new GoodsTypes();
				goodsTypes.setTypeId(rs.getInt("type_id"));
				goodsTypes.setTypeName(rs.getString("type_name"));
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		closeAll();
		return goodsTypes;
	}


}

2、实现控制层也就是servlet的实现。

public class TypesServlet extends HttpServlet {

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

		GoodsTypesDao goodsTypesDao = new GoodsTypesDao();

		String ope = request.getParameter("ope");//当前操作
		if (ope == null || ope.equals("") || ope.equals("list")) {
			// 查询
			List<GoodsTypes> goodsTypeses = goodsTypesDao.getAllTypes();

			request.setAttribute("goodsTypeses", goodsTypeses);

			request.getRequestDispatcher("goodstypeslist.jsp").forward(request,
					response);

		}else if(ope.equals("add")){
			
			String typeName=request.getParameter("typeName");
			GoodsTypes types=new GoodsTypes();
			types.setTypeName(typeName);
			
			int result=goodsTypesDao.addTypes(types);
			if(result>0){
				response.sendRedirect("TypesServlet");
			}else{
				response.sendRedirect("error.jsp");
			}
			
			
		}else if(ope.equals("del")){
			
			int tid=Integer.parseInt(request.getParameter("tid"));
			int result=goodsTypesDao.delTypes(tid);
			if(result>0){
				response.sendRedirect("TypesServlet");
			}else{
				response.sendRedirect("error.jsp");
			}
			
		}else if(ope.equals("toupdate")){
			
			int tid=Integer.parseInt(request.getParameter("tid"));
			GoodsTypes types=goodsTypesDao.getTypesById(tid);
			request.setAttribute("types", types);
			
			request.getRequestDispatcher("goodstypesupdate.jsp").forward(request, response);
			
		}else if(ope.equals("update")){
			int typeId=Integer.parseInt(request.getParameter("typeId"));
			String typeName=request.getParameter("typeName");
			
			GoodsTypes goodsTypes=new GoodsTypes();
			
			goodsTypes.setTypeId(typeId);
			goodsTypes.setTypeName(typeName);
			
			int result=goodsTypesDao.updateTypes(goodsTypes);
			
			if(result>0){
				response.sendRedirect("TypesServlet");
			}else{
				response.sendRedirect("error.jsp");
			}
			
		}

	}

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

}

3、修改页面。显示列表,修改超链接,这里需要把添加页面和修改页面也完成了,代码就不全部列出来了,因为比较简单,只给部分列表页面的代码:

				<div id="admin_content_contain">

					<a href="goodstypesadd.jsp">添加类别</a> <br /> <br />

					<table width="859" border="0" cellspacing="1" bgcolor="#e8822e">
						<tr class="admin_font3">
							<td width="57" height="30">序号</td>
							<td width="98">类别名称</td>

							<td width="69">操作</td>
						</tr>

						<c:forEach items="${goodsTypeses }" var="type" varStatus="status">
							<tr class="admin_font2">
								<td height="25">${status.index+1 }</td>

								<td>${type.typeName }</td>
								<td><a href="TypesServlet?ope=del&tid=${type.typeId }">删除</a> | <a href="TypesServlet?ope=toupdate&tid=${type.typeId }">修改</a>
								</td>
							</tr>
						</c:forEach>
					</table>


				</div>

猜你喜欢

转载自blog.csdn.net/liubao616311/article/details/84072186