我有一个包含列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();
现在我想知道自动生成的id
值是什么。我怎样才能做到这一点?
最佳答案
使用附加标志 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();
//....
关于java - 插入新记录时如何从数据库获取自动生成的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20134113/