qq_31045649 2015-09-11 15:07 采纳率: 50%
浏览 2137
已采纳

用servlet更新mysql数据不成功,没有报错,只是无法更新~求大神指点

这是更新的函数,在productdaoimpl类里:
public int updateProduct(Product product){
int flag = 0;
DBConnect conn = null;
PreparedStatement pstmt = null;

//update statement
    String sql = "update productinfo set productnumber=?,productvalue=?  where productname=?";

    try {

//connect DB
    conn = new DBConnect() ;
    pstmt = conn.getConnection().prepareStatement(sql) ;
    pstmt.setString(1, product.getProductnumber());
    pstmt.setString(2, product.getProductvalue());
    pstmt.setString(3, product.getProductname());
//update
    pstmt.executeUpdate();

    flag = 1;
    pstmt.close();

    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    conn.close();
    }
    return flag;

}

updateServlet的代码:
package jspservlet.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import jspservlet.dao.ProductDAO;
import jspservlet.dao.impl.ProductDAOImpl;
import jspservlet.vo.Product;

public class ProductUpdateServlet extends HttpServlet {

 public void doGet(HttpServletRequest req, HttpServletResponse res)
    throws IOException, ServletException{

     this.doPost(req, res);

 }

 public void doPost(HttpServletRequest req, HttpServletResponse res)
            throws IOException, ServletException{

        Product product = new Product();
        product.setProductname(req.getParameter("productname"));

        ProductDAO dao=new ProductDAOImpl();
        int flag = 0;
        int flag2 = 1;
        try {
            flag2 = dao.queryByProductName(product);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if (flag2 == 1) {
            res.sendRedirect("./errorRegister.jsp");
        } else {

        try {
            flag = dao.updateProduct(product);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        if( flag == 1) {
            //session是干嘛的?
            HttpSession session = req.getSession();
            session.setAttribute("productname", product.getProductname());
            res.sendRedirect("./success.jsp");
        } else {
            res.sendRedirect("./error.jsp");
        }

         }
 } 

}

JSP页面:

<%@ page language="java" pageEncoding="GB18030"%>



Delete Product





the name of the product you want to update:

    <form method="post" action="./update"> 
        productname : <input type="text" name="productname"/><br/>
        <p>the number and price of the product you want to change to:</p>
        productnumber : <input type="text" name="productnumber"/><br/>
        productvalue : <input type="text" name="productvalue"/><br/>        
        <input type="SUBMIT" name="submit" value="Submit"> 
    </form>

</body>

  • 写回答

7条回答 默认 最新

  • qq_31045649 2015-09-14 03:09
    关注

    我找到答案了,是没有获取页面输入导致的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(6条)

报告相同问题?

悬赏问题

  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥66 如何制作支付宝扫码跳转到发红包界面
  • ¥15 pnpm 下载element-plus
  • ¥15 解决编写PyDracula时遇到的问题