商品上下架
发布时间
阅读量:
阅读量
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)
还没有任何评论哟~
