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

用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 Jenkins+k8s部署slave节点offline
  • ¥15 微信小游戏反编译后,出现找不到分包的情况
  • ¥15 如何实现从tello无人机上获取实时传输的视频流,然后将获取的视频通过yolov5进行检测
  • ¥15 WPF使用Canvas绘制矢量图问题
  • ¥15 用三极管设计一个单管共射放大电路
  • ¥15 孟德尔随机化r语言运行问题
  • ¥15 pyinstaller编译的时候出现No module named 'imp'
  • ¥15 nirs_kit中打码怎么看(打码文件是csv格式)
  • ¥15 怎么把多于硬盘空间放到根目录下
  • ¥15 Matlab问题解答有两个问题