在JAVA中,在向SQLSERVER插入一条记录后,如何取得这条记录中由系统自动生成的ID?

时间:2022-11-13 00:25:49
在JAVA中,在向SQLSERVER插入一条记录后,如何取得这条记录中由系统自动生成的ID?

8 个解决方案

#1


在你插入记录的时候,让插入函数返回不就知道了吗?

#2


插入的时候返回的值是什么?楼上的能不能说一下?

不过最笨的方法有:
select top 1 from 表 by ID desc

然后取得ID,呵呵.

#3


用存储过程插入,然后返回该id

#4


最好就是用存储过程,如果你用命令插入后再取会出问题的

#5


有无 其他办法???

#6


执行"select @@identity"  返回的是本次会话最后一次产生的自增值

#7


同事想到的办法 

  PreparedStatement pstmt = conn.prepareStatement("INSERT INTO
TESTTABLE(NAME) VALUES(?);SELECT SCOPE_IDENTITY() AS 'ID'");
    pstmt.setString(1,"name1");
    ResultSet rs=pstmt.executeQuery();
    if (rs.next()){
      System.out.println(rs.getInt("ID"));
    }

#8


我的方法:

Statement stmt = this.conn.createStatement();
stmt.executeUpdate("INSERT INTO TESTTABLE(NAME) VALUES('name1')");
ResultSet rs = stmt.executeQuery("select @@identity");
if (rs.next()) {
  System.out.println(rs.getInt(1));
}

#1


在你插入记录的时候,让插入函数返回不就知道了吗?

#2


插入的时候返回的值是什么?楼上的能不能说一下?

不过最笨的方法有:
select top 1 from 表 by ID desc

然后取得ID,呵呵.

#3


用存储过程插入,然后返回该id

#4


最好就是用存储过程,如果你用命令插入后再取会出问题的

#5


有无 其他办法???

#6


执行"select @@identity"  返回的是本次会话最后一次产生的自增值

#7


同事想到的办法 

  PreparedStatement pstmt = conn.prepareStatement("INSERT INTO
TESTTABLE(NAME) VALUES(?);SELECT SCOPE_IDENTITY() AS 'ID'");
    pstmt.setString(1,"name1");
    ResultSet rs=pstmt.executeQuery();
    if (rs.next()){
      System.out.println(rs.getInt("ID"));
    }

#8


我的方法:

Statement stmt = this.conn.createStatement();
stmt.executeUpdate("INSERT INTO TESTTABLE(NAME) VALUES('name1')");
ResultSet rs = stmt.executeQuery("select @@identity");
if (rs.next()) {
  System.out.println(rs.getInt(1));
}