java往数据库sql中添加数据,怎么让主键自增

String insertCondition="INSERT INTO dingdan(id,sname,snumber,rname,rnumber,address,beizhu,cdate) VALUES (null,?,?,?,?,?,?,?)";
sql=con.prepareStatement(insertCondition);
sql.setString(1,handleString(sname));
sql.setString(2,handleString(snumber));
sql.setString(3,handleString(rname));
sql.setString(4,handleString(rnumber));
sql.setString(5,handleString(address));
sql.setString(6,handleString(beizhu));
sql.setTimestamp(7,new Timestamp(System.currentTimeMillis())); //获取系统当前时间
int m=sql.executeUpdate();
这样写对不对?第一列id是主键,想让它自动生成。然后从第二列sname开始插入, sql.setString(1,handleString(sname));这儿的“1”对吗?应该用“2”吗?那也不行啊

首先,你如果想把id列设置为自增列,直接在数据库中将其设置为自增列就可以了。

然后,等你添加数据的时候使用如下的语句:

INSERT INTO dingdan(sname,snumber,rname,rnumber,address,beizhu,cdate) VALUES (?,?,?,?,?,?,?)

数据库会自动帮你添加id列的值。 所以,你的这个代码可以改为:

String insertCondition="INSERT INTO dingdan(sname,snumber,rname,rnumber,address,beizhu,cdate) VALUES (?,?,?,?,?,?,?)";
sql=con.prepareStatement(insertCondition);
sql.setString(1,handleString(sname));
sql.setString(2,handleString(snumber));
sql.setString(3,handleString(rname));
sql.setString(4,handleString(rnumber));   
sql.setString(5,handleString(address));
sql.setString(6,handleString(beizhu));
sql.setTimestamp(7,new Timestamp(System.currentTimeMillis())); //获取系统当前时间
int m=sql.executeUpdate();

追问

还有别的方法吗               

              

            

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-06-26
设计表的时候 加一个自增的关键字就可以了。。Mysql是 auto_increment HSql和SQL Server 是indentity 然后插入数据时不用添加Id了 自动增加
相似回答