Advertisement

商品上下架

阅读量:

JSP

复制代码
    <td><c:set var='v' value="<font color='red'>下架</font>"
    										scope='page' /> ${s.proStatus eq 1?"上架": v}</td>
    <a
    									href="${pageContext.request.contextPath }/product/productChangeStatus.action?proId=${s.proId}">${s.proStatus eq 1?"下架":"上架"}</a>
    
    
      
      
      
      
    
    AI写代码

Mapper

复制代码
    <!-- 修改商品上下架 -->
    	<update id="updateStatus">
    		UPDATE product SET PRO_STATUS=MOD(PRO_STATUS+1,2) WHERE PRO_ID=#{proId}
    	</update>
    
    
      
      
      
      
    
    AI写代码

Dao

复制代码
    //修改商品上下架
    	public int updateStatus(@Param("proId")int proId);
    
    
      
      
    
    AI写代码

Service

复制代码
    // 修改商品上下架
    	public boolean changeStatus(int proId);
    
    
      
      
    
    AI写代码

ServiceImpl

复制代码
    // 修改商品上下架
    	public boolean changeStatus(int proId) {
    		// 获取连接
    		SqlSession session = MyBatisUtil.getSqlSession();
    		// 通过代理生成对象
    		ProductDao productDao = session.getMapper(ProductDao.class);
    		// 对象调方法
    		int i = productDao.updateStatus(proId);
    		// 提交事务
    		session.commit();
    		// 关闭流
    		MyBatisUtil.close();
    		if (i > 0) {
    			return true;
    		} else {
    			return false;
    		}
    	}
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    AI写代码

Servlet

复制代码
    public class ProductChangeStatus extends HttpServlet {
    
    	@Override
    	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		// 获取前台数据
    		int id = Integer.valueOf(req.getParameter("proId"));
    		// 调用service
    		ProductService productService = new ProductServiceImpl();
    		boolean bl = productService.changeStatus(id);
    		// 转发到/admin/product/ProductList.jsp
    		req.getRequestDispatcher("/product/product.action").forward(req, resp);
    
    	}
    
    
      
      
      
      
      
      
      
      
      
      
      
      
      
    
    AI写代码

采用状态码标识策略,其中将业务逻辑定义如下:当业务逻辑处于待处理状态时,其标识位设为"下架";反之设为"上架".具体实现基于模运算机制,即PRO_STASTU+1 mod 2的结果决定状态:当结果等于0时执行下架操作;结果等于1时执行上架构造.当采用条件判断时,在修改前后需执行两次SQL指令,并经历两次连接断开的过程,其整体运行效率相对较低.

全部评论 (0)

还没有任何评论哟~