如何实现对项目中的数据进行删除、修改的功能?

一、在servlet层的大概思路

  1. 得到需要的参数或者参数的map集合
  2. 使用beanUtils.populate()方法吧参数封装到bean实体对象中去
  3. 开始去调用service层的方法(中间有种递归的感觉,会先在servlet中去调用到service层的方法(然后又会创建一个dao层对象在service中去调用Dao层中的方法,然后把得到的结果一步一步往上层返回))
  4. 最后会对service层返回的结果作为判断依据做出判断,是删除成功或者是修改成功
  public void deleteCategory(HttpServletRequest request, HttpServletResponse response)  {

        try {

            Map<String, String[]> parameterMap = request.getParameterMap();
            Category category= new Category();
            BeanUtils.populate(category,parameterMap);
            //然后去调用service层的方法
            CategoryService categoryService = new CategoryService();
            boolean deleteCategory = categoryService.deleteCategory(category);
            if (deleteCategory){

                    response.sendRedirect(request.getContextPath()+
                            "/category?method=getCategoryList&currentPage=1&currentCount=10");
            }
            else {
                response.getWriter().write("删除失败");
            }
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

二、在service层(其主要目的就是作为servlet层和Dao层的桥梁,但是还是以逻辑业务为主)

  1. 创建dao层对象,然后调用dao层方法
  2. 给出适当的返回值
 public boolean deleteCategory(Category category) throws SQLException {

        CategoryDao dao = new CategoryDao();
        boolean deleteCategory = dao.deleteCategory(category);
        return deleteCategory;
    }

三、Dao层主要就是只管从数据库中去获取数据

  1. 使用C3P0的连接池
  2. 然后使用queryRanner对象去掉用update或者query方法
  3. 创建SQL语句
  4. 这一步是关键,因为根据你拿到的数据类型不同,有时候需要所以你需要传进来的参数也不同(ArrayHandler、ArrayListHandler、BeanHandler、BeanListHandler、MapHandler、MapListHandler、ScalarHandle)后面会对使用哪个结果集比较好做一个详细的讲解
  5. 返回结果(Boolean)或者集合
 public boolean deleteCategory(Category category) throws SQLException {
        ComboPooledDataSource dataSource = new ComboPooledDataSource();
        QueryRunner queryRunner = new QueryRunner(dataSource);
        String sql = "delete from category where c_id = ? ";
        int row = queryRunner.update(sql, category.getC_id());
           if (row>0){
               return true;
           }else {
               return false;
           }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值