简体   繁体   English

无法在JDBC中插入主键

[英]Can not get inserted primary key at JDBC

I am working with Microsoft SQL Server in my project and I am using JDBC as connector. 我在项目中使用Microsoft SQL Server,并且使用JDBC作为连接器。 My project runs within Tomcat Server. 我的项目在Tomcat服务器中运行。 What I am trying to do is gettiing primary key of a newly inserted value without writing one more select statement. 我正在尝试做的是获取新插入值的主键,而无需再编写一个select语句。

Here is my java code: 这是我的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
                        }
                    }

But code does not enter the inner if clause statement as I mentioned in my comment. 但是代码没有输入我在注释中提到的内部if子句语句。 I also tried this: 我也试过这个:

PreparedStatement ps = conn.prepareStatement("INSERT INTO Users(FIRSTNAME,STATUS)VALUES " +
                            "(?,?)", new String[]{"USERID"});

Here USERID is name of the primary key of Users table. 此处的USERID是Users表主键的名称。 Both method did not worked. 两种方法均无效。 How can I solve this? 我该如何解决?

尝试这个:

INSERT INTO Users(FIRSTNAME,STATUS) OUTPUT Inserted.ID VALUES (?,?)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM