[英]Can not get inserted primary key at JDBC
我在项目中使用Microsoft SQL Server,并且使用JDBC作为连接器。 我的项目在Tomcat服务器中运行。 我正在尝试做的是获取新插入值的主键,而无需再编写一个select语句。
这是我的Java代码:
PreparedStatement ps = conn.prepareStatement("INSERT INTO Users(FIRSTNAME,STATUS)VALUES " +
"(?,?)", Statement.RETURN_GENERATED_KEYS);
ps.setString(1, "name");
ps.setInt(2, status);
int updatedRows = ps.executeUpdate();
if(updatedRows > 0){
ResultSet resultSet = ps.getGeneratedKeys();
if (resultSet.next()) {
// do some stuff with resultSet.getInt(1)
// but code does not enter here
}
}
但是代码没有输入我在注释中提到的内部if子句语句。 我也试过这个:
PreparedStatement ps = conn.prepareStatement("INSERT INTO Users(FIRSTNAME,STATUS)VALUES " +
"(?,?)", new String[]{"USERID"});
此处的USERID是Users表主键的名称。 两种方法均无效。 我该如何解决?
尝试这个:
INSERT INTO Users(FIRSTNAME,STATUS) OUTPUT Inserted.ID VALUES (?,?)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.