在注册登录成功后在页面上实现增删改查功能

一,先登录,登录成功后显示操作界面,根据界面的提示,执行注册,登录,增加,修改,删除,查询的功能

 1、实现用户的注册功能

 2、实现用户的登陆功能

 3、实现用户的增加功能。

 3、实现用户的修改,但要考虑用户是否真实存在

 4、实现用户的删除功能,查询功能。

 5、实现用户的查询功能,查询全部及根据userName名去查询

 

 

 

 

二,实现增删改查四个功能

1,增加功能 

新增成功都要检查返回页(若有)和数据库记录于新增的是否一致,新增失败检查提示是否合理。

1、填充全部要素,增加成功

2、检查每一个必填项如果不填添加,会发生什么(报错提示还是新增成功?)

3、检查字段的业务规则。比如:ID只能为数字(为啥?ID是int类型啊)

4、弹窗确定,取消,看流程是否新增或者取消

<html>
<head>
    <title>商品信息添加</title>
</head>
<body>
      <h2>商品添加</h2>
      <form action="addGoods" method="post">
          商品名称:<input type="text" name="gname" value="" placeholder="商品名称" /> <br/>
          商品价格:<input type="number" step="0.01" name="price" value="" placeholder="商品价格" /> <br/>
          商品说明:<input type="text" name="mark" value="" placeholder="商品说明" /> <br/>
          <input type="submit" value="添加">
      </form>
</body>
</html>
public int add(Goods goods){
        try {
            Class.forName(JDBCdriver);
            con=DriverManager.getConnection(JDBCurl,JDBCusername,JDBCpassword);
            String sql="insert into t_goods(gname,price,mark) values(?,?,?)";
            pstm=con.prepareStatement(sql);
            pstm.setObject(1,goods.getGname());
            pstm.setObject(2,goods.getPrice());
            pstm.setObject(3,goods.getMark());
            row = pstm.executeUpdate();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
                if(pstm!=null){
                    pstm.close();
                }
                if(con!=null){
                    con.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return row;
    }
@WebServlet("/addGoods")
public class AddGoods extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");

        //获取请求参数并封装到Goods对象中
        Goods goods = new Goods();
        goods.setGname(request.getParameter("gname"));
        //使用Double包装类把字符串数字转换为double数据
        goods.setPrice(Double.parseDouble(request.getParameter("price")));
        goods.setMark(request.getParameter("mark"));

        //执行JDBC的添加操作
        GoodsDao goodsDao = new GoodsDao();
        int row = goodsDao.add(goods);

        if(row>0){
            //添加成功,请求selectAllGoods地址,执行对应的Servlet(查询商品信息,存入session中,转到主页)
            request.getRequestDispatcher("selectAllGoods").forward(request,response);
        }else {
            request.setAttribute("error_msg","添加商品出错啦");
        }
    }
}

 2,删除功能

 删除成功都要检查返回页(若有)和数据库记录

1、软删除还是硬删除(硬删除就是物理删除,看看数据库记录是否存在。软删除的话看看对应数据库字段是否改了,比如:status字段值改为disable)

2、删除提示

3、弹窗确定,取消,看流程是否删除或者取消

4、关联关系:比如,你的系统用户删掉了。看看用这个用户还能不能登录对应系统

5、删除权限。无权限到有权限,有权限到无权限,注意权限的变化

@WebServlet("/dell")
public class DellGoods extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        int gid=Integer.parseInt(request.getParameter("gid"));
        GoodsDao goodsDao = new GoodsDao();
        int row = goodsDao.delete(gid);
        if(row>0){
          request.getRequestDispatcher("selectAllGoods").forward(request,response);
        }else {
            request.setAttribute("error.msg","删除出现了问题");
            request.getRequestDispatcher("error.jsp").forward(request,response);
        }
    }
}
public int delete(int gid){
        try {
            Class.forName(JDBCdriver);
            con=DriverManager.getConnection(JDBCurl,JDBCusername,JDBCpassword);
            String sql="delete from t_goods where gid=?";
            pstm=con.prepareStatement(sql);
            pstm.setObject(1,gid);
            row = pstm.executeUpdate();
        }catch (Exception e){
            e.printStackTrace();
        }finally {
            try {
                if(pstm!=null){
                    pstm.close();
                }
                if(con!=null){
                    con.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return row;
    }

3,修改功能

1、对应字段能修改的和不能修改的检查,比如很多时候ID是不能修改的

2、每一个能修改的字段都需要修改后提交,检查返回页和数据库的值修改得是否正确

3、修改还原,修改后的东西又改为修改之前的,关注页面变化

4、关联关系:比如权限系统,对应修改了用户的权限,那么对应的模块访问的权限就被修改

备注信息的长度等,这些有确定要求再提

<html>
<head>
    <title>商品信息修改</title>
</head>
<body>
    <h2>商品修改</h2>
    <form action="updateGoods" method="post">
        商品编号:<input type="text" name="gid" value="${goods.gid}" placeholder="商品编号" readonly="readonly"/> <br/>
        商品名称:<input type="text" name="gname" value="${goods.gname}" placeholder="商品名称" /> <br/>
        商品价格:<input type="number" step="0.01" name="price" value="${goods.price}" placeholder="商品价格" /> <br/>
        商品说明:<input type="text" name="mark" value="${goods.mark}" placeholder="商品说明" /> <br/>
     <input type="submit" value="修改">
  </form>
 </body>
</html>
@WebServlet("/findById")
public class FindGoodsById extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          doPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          int gid = Integer.parseInt(request.getParameter("gid"));
          //根据gid查询该商品信息
          GoodsDao goodsDao = new GoodsDao();
          Goods goods = goodsDao.selectById(gid);

        if(goods!=null){
            //把数据存储到request域对象中,然后请求转发到页面
            request.setAttribute("goods",goods);
            request.getRequestDispatcher("showGoods.jsp").forward(request,response);
        }else {
            request.setAttribute("error.msg","修改出现了问题");
            request.getRequestDispatcher("error.jsp").forward(request,response);
        }
    }
}
@WebServlet("/updateGoods")
public class UpdateGoods extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        request.setCharacterEncoding("utf-8");
        response.setCharacterEncoding("utf-8");

        //获取表单请求的数据,封装到goods对象中
        Goods goods = new Goods();
        goods.setGid(Integer.parseInt(request.getParameter("gid")));
        goods.setGname(request.getParameter("gname"));
        goods.setPrice(Double.parseDouble(request.getParameter("price")));
        goods.setMark(request.getParameter( "mark"));
        System.out.println(goods);

        GoodsDao goodsDao = new GoodsDao();
        int row = goodsDao.update(goods);
        if(row>0){
            request.getRequestDispatcher("selectAllGoods").forward(request,response);
        }else {
            request.setAttribute("error.msg","修改出现了问题");
            request.getRequestDispatcher("error.jsp").forward(request,response);
        }
    }
}
public Goods selectById(int gid){
        Goods goods=null;
        try {
            Class.forName(JDBCdriver);
            con = DriverManager.getConnection(JDBCurl, JDBCusername, JDBCpassword);
            String sql = "select * from t_goods where gid=?";
            pstm = con.prepareStatement(sql);
            pstm.setObject(1,gid);
            rs = pstm.executeQuery();
            if (rs.next()) {
                //从结果集中获取数据,封装到Goods对象中
                goods = new Goods();
                goods.setGid(rs.getInt("gid"));
                goods.setGname(rs.getString("gname"));
                goods.setPrice(rs.getDouble("price"));
                goods.setMark(rs.getString("mark"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                if(rs!=null){
                    rs.close();
                }
                if(pstm!=null){
                    pstm.close();
                }
                if(con!=null){
                    con.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return goods;
    }
  public int update(Goods goods){
        try {
            Class.forName(JDBCdriver);
            con = DriverManager.getConnection(JDBCurl, JDBCusername, JDBCpassword);
            String sql = "update t_goods set gname=?,price=?,mark=? where gid=?";
            pstm = con.prepareStatement(sql);
            pstm.setObject(1,goods.getGname());
            pstm.setObject(2,goods.getPrice());
            pstm.setObject(3,goods.getMark());
            pstm.setObject(4,goods.getGid());
            row=pstm.executeUpdate();
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                if(pstm!=null){
                    pstm.close();
                }
                if(con!=null){
                    con.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return row;
    }

4,查询功能

1、直接点击查询默认查找所有

2、看需求是否实现了对应字段的查询,对应字段是否支持模糊查询

3、字段交叉查询,比如日志信息,同时输入操作人和时间看查询的结果是否正确

4、一般页面会有重置查询条件的按钮,要看看每一个输入框或者下拉框的内容是否被清空

一些查询框输入字母、字符、等这些案例只有在有要求或者是凑案例数的时候需要吧。一般没人管你这些东西

@WebServlet("/selectAllGoods")
public class SelectAllGoods extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
         doPost(request,response);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("SelectAllGoods...doPost");
        //查询所有商品信息
        GoodsDao goodsDao = new GoodsDao();
        List<Goods> goodsList = goodsDao.selectAll();
        System.out.println(goodsList);

        //把数据传递到前端页面
        //通过request获取session对象,该对象可以向前端传输数据的容器
        HttpSession session = request.getSession();
        //向session中存入商品信息集合
        session.setAttribute("goodsList",goodsList);
        //登录成功,跳转到主页
        response.sendRedirect("zhuye.jsp");
    }
}
 public List<Goods> selectAll() {
        List<Goods> goodsList = new ArrayList<>();
        try {
            Class.forName(JDBCdriver);
            con = DriverManager.getConnection(JDBCurl, JDBCusername, JDBCpassword);
            String sql = "select * from t_goods";
            pstm = con.prepareStatement(sql);
            rs = pstm.executeQuery();
            while (rs.next()) {
                //从结果集中获取数据,封装到Goods对象中
                Goods goods = new Goods();
                goods.setGid(rs.getInt("gid"));
                goods.setGname(rs.getString("gname"));
                goods.setPrice(rs.getDouble("price"));
                goods.setMark(rs.getString("mark"));
                //把当前行对应的对象储存到集合中
                goodsList.add(goods);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                if(rs!=null){
                    rs.close();
                }
                if(pstm!=null){
                    pstm.close();
                }
                if(con!=null){
                    con.close();
                }
            }catch (Exception e){
                e.printStackTrace();
            }
        }
        return goodsList;
    }

最后查询修改四个功能就完成啦!

猜你喜欢

转载自blog.csdn.net/weixin_69036336/article/details/129234566
今日推荐