• (二十八)分类信息的curd-分类信息删除


    删除分类步骤分析:
            1.在list.jsp上编写 删除连接
                /store/adminCategory?method=delete&cid=??
            2.在delete方法中
                获取cid
                调用service的delete方法
                页面重定向/store/adminCategory?method=findAll
            3.service中delete
                添加事务
                通过cid先更新所有的商品分类信息 ,删除后分类信息为null
                调用dao(商品表、分类表) 删除分类
                事务控制
                清空缓存

    /store/WebContent/admin/category/list.jsp

    /store/src/com/louis/web/servlet/AdminCategoryServlet.java

    /**
         * 删除分类
         * @param request
         * @param response
         * @return
         * @throws Exception
         */
        public String delete(HttpServletRequest request, HttpServletResponse response) throws Exception {
            //1.获取cid
            String cid = request.getParameter("cid");
            
            //2.调用service 完成删除
            CategoryService cs=(CategoryService) BeanFactory.getBean("CategoryService");
            cs.delete(cid);
            
            //3.重定向
            response.sendRedirect(request.getContextPath()+"/adminCategory?method=findAll");
            return null;
        }

    /store/src/com/louis/service/impl/CategoryServiceImpl.java

    public void delete(String cid) throws Exception{
            try {
                //1.开启事务
                DataSourceUtils.startTransaction();
    
                //2.更新商品
                ProductDao pd=(ProductDao) BeanFactory.getBean("ProductDao");
                pd.updateCid(cid);
                
                //3.删除分类
                CategoryDao cd=(CategoryDao) BeanFactory.getBean("CategoryDao");
                cd.delete(cid);
                
                //4.事务控制
                DataSourceUtils.commitAndClose();
                
                //5.清空缓存
                CacheManager cm = CacheManager.create(CategoryServiceImpl.class.getClassLoader().getResourceAsStream("ehcache.xml"));
                Cache cache = cm.getCache("categoryCache");
                cache.remove("clist");
            } catch (Exception e) {
                e.printStackTrace();
                DataSourceUtils.rollbackAndClose();
                throw e;
            }
            
        }

    /store/src/com/louis/dao/impl/ProductDaoImpl.java

    /**
         * 更新商品的cid 为删除分类的时候准备
         */
        @Override
        public void updateCid(String cid) throws Exception {
            QueryRunner qr = new QueryRunner();
            String sql="update product set cid = null where cid = ?";
            qr.update(DataSourceUtils.getConnection(), sql, cid);
        }

    /store/src/com/louis/dao/impl/CategoryDaoImpl.java

    /**
         * 删除分类
         */
        @Override
        public void delete(String cid) throws Exception {
            QueryRunner qr = new QueryRunner();
            String sql="delete from category where cid = ?";
            qr.update(DataSourceUtils.getConnection(), sql, cid);
            
        }

  • 相关阅读:
    mac上命令行解压rar
    Mac上安装PHP、Apache、MySQL
    8款不错的 CI/CD工具
    Apache 强制Http跳转Https
    使用MySQL的mysqldump命令备份数据库和把数据库备份文件恢复
    MySQL主从复制和读写分离
    Nginx参数调优
    【原创】深入理解Docker容器和镜像 -- 分析了docker的命令含义
    Elasticsearch使用备忘
    通过HTTP RESTful API 操作elasticsearch搜索数据
  • 原文地址:https://www.cnblogs.com/Michael2397/p/7676041.html
Copyright © 2020-2023  润新知