解决方案 »

  1.   

    最关键的地方没有贴出来
    数据插不进数据库,报什么错误了吗?
    断点下,看看userdao.addUser(user) 跟数据库交互时的数据情况
    public void registerUser(User user)   {
            userdao.addUser(user);
    }
      

  2.   

     最后发现是id的问题,我把id设置成了主键,并且让它自动增加,然后insert into user里面就没有写它就不行,该怎么办啊
      

  3.   

    public void addUser(User user)
    {
                   try{
                        //这里是连接数据库的代码略
                       //我是下面的出问题了 我没有valuees id ,但是我设置的是自增啊 为什么还要设置啊
    String sql ="insert into user values(?,?,?,?) ";
                    pstmt = con.prepareStatement(sql);
                    pstmt.setString(1, user.getUserName());
                      pstmt.setString(2, user.getUserPwd());
                      pstmt.setString(3, user.getUserSex());
                      pstmt.setString(4, user.getEmail());


    pstmt.executeUpdate();

    }
    catch(Exception e){
    e.printStackTrace();
    }

    }
      

  4.   

    public void addUser(User user)
        {
                   try{
                        //这里是连接数据库的代码略
                       //我是下面的出问题了 我没有valuees id ,但是我设置的是自增啊 为什么还要设置啊
            String sql ="insert into user values(?,?,?,?) ";
                    pstmt = con.prepareStatement(sql);
                    pstmt.setString(1, user.getUserName());
                      pstmt.setString(2, user.getUserPwd());
                      pstmt.setString(3, user.getUserSex());
                      pstmt.setString(4, user.getEmail());
             
             
            pstmt.executeUpdate();
             
            }
            catch(Exception e){
                e.printStackTrace();
                }
             
        }
      

  5.   

    String sql ="insert into user(username, userpwd, usersex, email)  values(?,?,?,?) ";
    直接默认的不写user后面的列名时,默认是全部插入的,但你后面的values 却缺id列,应该会报错的
      

  6.   

    果然我猜测的没错,你没有做事务处理。你应先在编译预处理SQL语句前设置为手动提交事务(conn.setAutoCommit(false);)。在执行SQL语句插入数据之后,判断如插入成功则提交事务(conn.commit();),若失败则回滚事务(conn.rollback();)。
      

  7.   

    果然我猜测的没错,你没有做事务处理。你应先在编译预处理SQL语句前设置为手动提交事务(conn.setAutoCommit(false);)。在执行SQL语句插入数据之后,判断如插入成功则提交事务(conn.commit();),若失败则回滚事务(conn.rollback();)。可是我感觉我进行的就是一条简单的插入语句啊。没有事务啊,可以插一条提交啊