如何使用java添加自动增量值



我使用在Mysql中创建了一个表

Create table 
(
id int auto_increment,
us varchar(100),
ps varchar(1000)
); 

并使用java通过我的GUI应用程序添加值:

我使用以下方法将值添加到我的数据库中:

public static void Mysql(String u, String p) throws NoSuchAlgorithmException, InvalidKeySpecException
{
String hashpass=passhash(p);//throws declaration for this statement
try{  
Class.forName("com.mysql.cj.jdbc.Driver");  
Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/bs","root","root");   
String query = " insert into login (id,us,ps)"
+ " values (?,?, ?)";  
Statement stmt=con.createStatement();  
ResultSet rs=stmt.executeQuery("select * from login"); 
int id=0;
while(rs.next())
{
id= rs.getInt(1);
}
PreparedStatement preparedStmt = con.prepareStatement(query);
preparedStmt.setInt(1, id++); //I don't want this method because id is auto increment
preparedStmt.setString(2,u);
preparedStmt.setString(3,hashpass);
preparedStmt.execute();
con.close();  
}catch(Exception e){ System.out.println(e);}  

}

一切正常

但是id是auto_increment,我不需要在添加其他列值的同时向id添加值。

我不能这样添加,而通过java添加,就像只添加us一样,ps列和id将自动递增。

是否有任何方法可以在不传递参数的情况下添加数据

从sql语句中删除列id

String query = "insert into login (us, ps) values (?, ?)";

并且不要在准备好的语句中为它设置任何值,所以删除这一行:

preparedStmt.setInt(1, id++); 

idauto_inrement,因此其值将由MySql设置
当然,将其他行的索引更改为1和2:

preparedStmt.setString(1,u);
preparedStmt.setString(2,hashpass);

您可以插入没有ID的数据,因为它将从SQL 自动生成

public static void Mysql(String u,String p) throws NoSuchAlgorithmException, InvalidKeySpecException {
String hashpass=passhash(p);
try{  
Class.forName("com.mysql.cj.jdbc.Driver");  
Connection con=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/bs","root","root");   
String query = " insert into login (us,ps) values (?, ?)"; // CHECK HERE  
Statement stmt=con.createStatement();  
ResultSet rs=stmt.executeQuery("select * from login"); 
PreparedStatement preparedStmt = con.prepareStatement(query);
preparedStmt.setString(1,u);
preparedStmt.setString(2,hashpass);
preparedStmt.execute();
con.close();  
}catch(Exception e){
System.out.println(e);}           
}
}

最新更新