这是我更新的Servlet  就是先看有没有民称那一项name  如果有就只更新 没有就再加一条数据
我的servlet如下  得到是个catch的错误  急求指点  谢谢!
 String s1 = request.getParameter("name").trim();
        String s2 = request.getParameter("price");
        String s3 = request.getParameter("num");
        String s4 = request.getParameter("image");
        String s5 = request.getParameter("username");
        int price = 0;
        int num = 0;
           if(s3.equals("0")||s3.equals("null"))
        {
               RequestDispatcher dis = request.getRequestDispatcher("Goods.jsp");
               dis.forward(request, response);
        }
        else
        {
              try 
            {
                int q = Integer.parseInt(s3);
                Statement sta = (Statement) dbcon.getcon().createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
                ResultSet rs = sta.executeQuery("select * from shoppingcar");
                rs.last();
                PreparedStatement ps = (PreparedStatement) dbcon.getcon().prepareStatement("insert into shoppingcar values(?,?,?,?,?)");
                String name = new String(s1.getBytes("gb2312")); 
                if(s1.equals(rs.getString(1)) )
                {
                    q = Integer.parseInt(s3)+rs.getInt(3);
                    PreparedStatement ps1 = (PreparedStatement) dbcon.getcon().prepareStatement("update shoppingcar set num="+q+" where name="+s1+"");
                    ps1.setInt(3, q);
                    ps1.executeUpdate();
                    RequestDispatcher dis = request.getRequestDispatcher("shopafter.jsp");
                    dis.forward(request, response);
                }
                else{
                    
               
                num = Integer.parseInt(s3);
                price = Integer.parseInt(s2);        
                ps.setInt(3,num);
                ps.setString(5, s5);
                ps.setInt(2,price);
                ps.setString(1, name);
                ps.setString(4, s4);
                ps.executeUpdate();
                ab.setName(s1);
                ab.setPrice(price);
                ab.setNum(num);
                ab.setimage(s4);
                ss.setAttribute("bo", true);
                RequestDispatcher dis = request.getRequestDispatcher("shopafter.jsp");
                dis.forward(request, response);
                
                
            }
                 }
            catch(Exception e)
            {            
                 RequestDispatcher dis = request.getRequestDispatcher("index.jsp");
                    dis.forward(request, response);
            }数据库Servlet异常

解决方案 »

  1.   

      catch(Exception e)
                {            
                     RequestDispatcher dis = request.getRequestDispatcher("index.jsp");
                        dis.forward(request, response);
                }就是直接转到了这句话中的页面
      

  2.   


    if(s1.equals(rs.getString(1)) )
    {
         q = Integer.parseInt(s3)+rs.getInt(3);
         PreparedStatement ps1 = (PreparedStatement) dbcon.getcon().prepareStatement("update shoppingcar set num="+q+" where name="+s1+"");
         ps1.setInt(3, q);
         ps1.executeUpdate();
         RequestDispatcher dis = request.getRequestDispatcher("shopafter.jsp");
         dis.forward(request, response);
    }
    这段代码有问题  ps1.setInt ?  这句应该会出错的