关于用JDBC向数据库插入数据(看代码有错没),该如何解决

关于用JDBC向数据库插入数据(看代码有错没)
数据库操作:
    public   boolean   insert(UserBean   user){
    try{
    String   sql= "insert   into   user(name,password)   values(?,?,?) ";
    preparedStatement=conn.prepareStatement(sql);
    preparedStatement.setString(1,user.getName());
    preparedStatement.setString(1,user.getPassword());
    preparedStatement.setString(3,user.getCompany());
                    int   falg=preparedStatement.executeUpdate();
    if(falg==0){
    return   false;
  }
    }catch(SQLException   e){
    e.printStackTrace();
    return   false;
    }
    return   true;
    }

Action:
public   ActionForward   execute(ActionMapping   mapping,   ActionForm   form,
HttpServletRequest   request,   HttpServletResponse   response)   {
                      UserBean   user=new   UserBean();
                      user.setName(request.getParameter( "name "));
                      user.setName(request.getParameter( "password "));
                      user.setCompany(request.getParameter( "company "));
                      DBManager   db=new   DBManager();
                      if(db.insert(user)){
                      request.setAttribute( "message ", " <script> alert(‘添加成功‘); </script> ");
                      }else{
                      request.setAttribute( "message ", " <script> alert(‘添加失败‘); </script> ");
                      }
                      db.close();
                      return   mapping.findForward( "regist ");
}

------解决方案--------------------
没看大懂,jf

------解决方案--------------------
n p
------解决方案--------------------
String sql= "insert into user(name,password) values(?,?,?) ";
preparedStatement=conn.prepareStatement(sql);
preparedStatement.setString(1,user.getName());
preparedStatement.setString(1,user.getPassword());
preparedStatement.setString(3,user.getCompany());
这段有问题,如果user表中,你只插入name,password字段,怎么values中有3个字段?
而且只有1,3有setString方法……
------解决方案--------------------
同上,这样改:String sql= "insert into user(name,password) values(?,?,?) ";
preparedStatement=conn.prepareStatement(sql);
preparedStatement.setString(1,user.getName());
preparedStatement.setString(2,user.getPassword());