如何在插入新记录时从数据库中获取自动生成的值?

use*_*031 2 java jdbc

我的表有列id,名称,地址,城市,州,邮编.这里的ID是插入这样的新记录时自动生成:insert into table1(name,address,city,state,zip) values(?,?,?,?,?).

这是我的代码:

preparedstatement.setString(1,name);
preparedstatement.setString(2,address);
preparedstatement.setString(3,city);
preparedstatement.setString(4,state);
preparedstatement.setString(5,zip);

preparedstatement.executeUpdate();
Run Code Online (Sandbox Code Playgroud)

现在我想知道id自动生成的值是多少.我怎样才能做到这一点?

Sam*_*Sam 6

使用附加标志创建预准备语句Statement.RETURN_GENERATED_KEYS并使用PreparedStatement.getGeneratedKeys():

String sql = "insert into table1(name,address,city,state,zip) values(?,?,?,?,?)";
PreparedStatement preparedstatement
= con.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);

//....

preparedstatement.setString(1,name);
preparedstatement.setString(2,address);
preparedstatement.setString(3,city);
preparedstatement.setString(4,state);
preparedstatement.setString(5,zip);

preparedstatement.executeUpdate();

ResultSet generatedKeys = preparedstatement.getGeneratedKeys();
//....
Run Code Online (Sandbox Code Playgroud)

相关:带Statement.RETURN_GENERATED_KEYS的PreparedStatement