高手给我看看看怎么不能运行

//这是javaBean
public int UpdateUser(int id,User user){
conn=BaseDao.getConn();
int flag=0;
try{
String sql = " update Users set name=?,password=? where id=? ";
ps=conn.prepareStatement(sql);
ps.setInt(1, id);
ps.setString(2, user.getName());
ps.setString(3, user.getPassword());
flag=ps.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
BaseDao.Closeconn(conn);
BaseDao.ClosePs(ps);
}
return flag;
}

//这是Servlet里边的
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {

    request.setCharacterEncoding("GBK");
    int id=Integer.parseInt(request.getParameter("id"));
    String name=request.getParameter("Name");
    String password=request.getParameter("pwd");
    User user = new User();
    user.setName(name);
    user.setPassword(password);
    UserDao userDao= new UserDao();
    int num=userDao.UpdateUser(id, user);
    if(num>0){
        request.getRequestDispatcher("/index.jsp").forward(request, response);
    }else{
        request.getRequestDispatcher("/login.jsp").forward(request, response);
    }
}

String sql = " update Users set name=?,password=? where id=? ";
ps=conn.prepareStatement(sql);
ps.setInt(1, id);
ps.setString(2, user.getName());
ps.setString(3, user.getPassword());
参数赋值错误
ps.setString(1, user.getName());
ps.setString(2, user.getPassword());
ps.setInt(3, id);