首页 > 其他分享 >Servlet13 - 实现删除和添加

Servlet13 - 实现删除和添加

时间:2023-01-18 15:23:34浏览次数:40  
标签:删除 request Fruit delFruit fruit fid Integer Servlet13 添加

3. 点击删除按钮从数据库中删除数据

  • 点击按钮调用 js 中的 delFruit(fid) 方法,需要传入 fid

    • 调用 js 中的方法以及传入参数的 thymeleaf 语法

    • <!-- 方法1 字符串拼接 易错不推荐使用 -->
      th:onclick="'delFruit('+${fruit.fid}+')'"/>
      
      <!-- 方法2 字符串两侧加| = 识别字符串中的 thymeleaf 语法 ${...} -->
      th:onclick="|delFruit(${fruit.fid})|"/>
      
    • 在 js 的 delFruit 方法中向 del.do 映射的 DelServlet 发送请求,默认为 get 请求,同时传入 fid

    • function delFruit(fid){
          if(confirm('是否确认删除?')){
              window.location.href='del.do?fid='+fid;
          }
      }
      
  • 在 DelServlet 中重写 doGet 处理请求,调用 FruitDAOImpl 中实现的 delFruit 方法

    • private FruitDAO fruitDAO = new FruitDAOImpl();
      
      @Override
      public void doGet(HttpServletRequest request , HttpServletResponse response)throws IOException, ServletException {
          String fidStr = request.getParameter("fid");
          if(StringUtil.isNotEmpty(fidStr)){
              int fid = Integer.parseInt(fidStr);
              Fruit fruit = fruitDAO.getFruitByFid(fid);
              request.setAttribute("fruit",fruit);
              super.processTemplate("edit",request,response);
          }
      }
      
    • 在 FruitDAOImpl 实现的 delFruit 方法中,也只需调用父类 BaseDAO 中封装好的 executeUpdate 方法将 SQL 语句结构和参数传入即可

    • public void delFruit(Integer fid) {
      	super.executeUpdate("delete from t_fruit where fid = ? " , fid) ;
      }
      

4. 添加新记录

  • 首页 index.html 增加跳转至添加记录页面 add.html 的超链接

    • <a th:href="@{/add.html}" style="border:0px solid blue;margin-bottom:4px;">添加新库存记录</a>
      
  • add.html 提交一个填写各种信息的表单,发送请求到 add.do 映射到 AddServlet

    • <form action="add.do" method="post">
          ...
      </form>
      
  • AddServlet 中重写 doPost方法

    • 根据 request 传入的值,创建 Fruit 对象

    • 将 Fruit 对象作为参数传入调用的 fruitDAO 类的 .addFruit(fruit) 方法

    • private FruitDAO fruitDAO = new FruitDAOImpl();
      
      @Override
      protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          request.setCharacterEncoding("UTF-8");
      
          String fname = request.getParameter("fname");
          Integer price = Integer.parseInt(request.getParameter("price")) ;
          Integer fcount = Integer.parseInt(request.getParameter("fcount"));
          String remark = request.getParameter("remark");
      
          Fruit fruit = new Fruit(0,fname , price , fcount , remark ) ;
      
          fruitDAO.addFruit(fruit);
      
          response.sendRedirect("index");
      
      }
      
    • 最后客户端重定向,添加完成后自动跳转到首页

  • fruitDAO 中的 addFruit() 方法通过调用父类 BaseDAO 的方法实现

    • 将SQL语句结构和占位符对应值作为参数传入父类 BaseDAO 封装好的 executeUpdate 方法即可完成数据库操作

    • @Override
      public void addFruit(Fruit fruit) {
          String sql = "insert into t_fruit values(0,?,?,?,?)";
          super.executeUpdate(sql,fruit.getFname(),fruit.getPrice(),fruit.getFcount(),fruit.getRemark());
      }
      

标签:删除,request,Fruit,delFruit,fruit,fid,Integer,Servlet13,添加
From: https://www.cnblogs.com/Ashen-/p/17059875.html

相关文章