40、商品類別管理
阿新 • • 發佈:2018-12-03
學習過程:
昨天完成使用者的登入和註冊功能,今天我們回到後臺完成商品類別和商品的管理,先從比較簡單商品類別做起。大家可以先完成後臺管理員登入功能,和前途登入差不多,所以這裡我就不列出程式碼的實現了,大家可以下載原始碼檢視。按照計劃,我們先完成商品類別的管理,這個功能比較簡單,可以先看看靜態頁面,如下圖:
其實主要的功能就是對商品類別進行增刪改查操作,通過對商品類別管理,大家可以基本學會如何對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>