就是呀,不设置呀!在SQL语句中,添加新的记录,没说一定要指定指呀,除了定义为not null的字段.

解决方案 »

  1.   

    我可能没说清楚,我要用的是预编译sql语句,不是普通sql语句
    比如sql=insert into table (id,name)values(?,?)
    id是数据库中自动编号的字段
    如果是普通sql语句 insert int table (id,name) values('','jonkeyjohns'),就可以做到id自动增加了。
    但是,我必须要用前者,预编译的sql语句。
    PreparedStatement pstmt = connection.prepareStatement(sql);
    pstmt.setInt("id",0)//出问题的地方
    pstmt.setString("name","jonkeyjohns")
    pstmt.executeUpdate();
      

  2.   

    如果你在创建数据库表的时候,告诉数据库,id这个字段是自增的
    那么,你的insert语句中不应该有id这个字段的赋值,那已经由数据库负责了如果数据库表中没有这样的设计,只是你想在程序中实现
    那你pstmt.setInt("id",0);这条语句的第二个参数应该是一个你来控制递增数字
      

  3.   

    PreparedStatement有你这么用的嘛?
    你可以在那个地方用变量的:
    sql=insert into table (id,name)values(?,?)
    PreparedStatement ps = connection.prepareStatement(sql);
    pstmt.setInt(1,id);
    pstmt.setString(2,name);
    ResultSet rs = ps.execute();
      

  4.   

    感谢danceflash(Wine)
    只要不为这个字段赋值就可以了
    再次感谢