m0_63290578 2023-06-20 21:40 采纳率: 89.5%
浏览 33
已结题

jsp跳转servlet实现添加数据

在添加数据的时候总显示添加失败不知道为什么
这是servlet的

protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // TODO Auto-generated method stub    
         
        request.setCharacterEncoding("utf-8");
        String id = request.getParameter("id");
        String name = request.getParameter("name");
        //int price = Integer.parseInt(request.getParameter("price"));
         
        String priceParam = request.getParameter("price");
        int price = 0; // 默认值或错误情况下的处理值
        try {
            if (priceParam != null && !priceParam.isEmpty()) {
                price  = Integer.parseInt(priceParam);
            }
        } catch (NumberFormatException e) {
            
        }
        String kind = request.getParameter("kind");
        String provider = request.getParameter("provider");
        String numParam = request.getParameter("num");
        int num = 0; // 默认值或错误情况下的处理值
        try {
            if (numParam != null && !numParam.isEmpty()) {
                num = Integer.parseInt(numParam);
            }
        } catch (NumberFormatException e) {
            // 处理无法解析为整数的情况,例如给出默认值或错误提示
            // num = 默认值;
            // 输出错误信息或返回给前端的错误提示
        }
     
        Goods goods= new Goods();
        goods.setId(id);
        goods.setName(name);
        goods.setPrice(price);
        goods.setKind(kind);
        goods.setProvider(provider);
        goods.setNum(num);
         
         
        int result = 0;
        try {
            result = dao.Add(goods);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
         
        if ( result ==1) {
            request.setAttribute("message", "添加成功");
            request.getRequestDispatcher("AdminView.jsp").forward(request, response);
        } else {
            request.setAttribute("message", "添加失败");
            request.getRequestDispatcher("AdminAdd.jsp").forward(request, response);
        }

    }
 


这是dao层的添加数据方法


```java

public int Add(Goods goods) throws Exception {
    int i = 0;
    Connection con = null;
    PreparedStatement st = null;
    ResultSet rs = null;
    try {
        con = CnUtil.GetCon();
        String sql = "insert into goods(id,name,price,kind,provider,num) values(?,?,?,?,?,?)";
        st = con.prepareStatement(sql);
        st.setString(1, goods.getId());
        st.setString(2, goods.getName());
        st.setInt(3, goods.getPrice());
        st.setString(4, goods.getKind());
        st.setString(5, goods.getProvider());
        st.setInt(5, goods.getNum());
        i = st.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    } finally {
        CnUtil.closeResource(con, st, rs);
    }
    return i;
}

```

  • 写回答

4条回答 默认 最新

  • 竹山全栈 2023-06-20 22:28
    关注

    img

    在这个地方写个输出goods.toString()看看你新增的数据goods内部各个属性具体是什么样的,尤其注意一下属性id的值,看看是不是和数据库中的id重复了,如果id在数据库中是主键那估计插入不进去呢,就先输出看看,查看这个初步的问题是什么,还有可能是你这个id如果是自增那就id对应的sql语句的?可以改成null试试,程序是个精细活,实在不会我帮你远程教你解决这问题

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

报告相同问题?

问题事件

  • 系统已结题 12月21日
  • 已采纳回答 12月13日
  • 创建了问题 6月20日

悬赏问题

  • ¥15 数据库原理及应用上机练习题
  • ¥30 征集Python提取PDF文字属性的代码
  • ¥15 如何联系真正的开发者而非公司
  • ¥15 有偿求苍穹外卖环境配置
  • ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
  • ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
  • ¥15 clousx6整点报时指令怎么写
  • ¥30 远程帮我安装软件及库文件
  • ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
  • ¥20 深信服vpn-2050这台设备如何配置才能成功联网?