Java,PreparedStatement,TransactSQL(MS SQL),最后一个插入ID

时间:2010-11-30 13:55:36

标签: java sql-server lastinsertid

我使用PreparedStatement将一些值插入到数据库中,但似乎在这种情况下我无法检索最后一个插入ID。

我尝试使用与我用于语句相同的语句(如下所示),但它确实起作用。它说,在这种情况下.executeQuery()不能接受参数。

事实上,我并不完全需要最后一个插入ID,受影响的行数会做,但我怎么做到的?我认为PreparedStatement的.executeUpdate()方法会返回受影响的行数,但显然它没有。

这是方法。

 public static int getLastInsertId(Statement stmt) throws SQLException {
  String sql = "SELECT SCOPE_IDENTITY() AS id";

  ResultSet rs = stmt.executeQuery(sql);
  int id = 0;
  while (rs.next()) {
   id = rs.getInt("id");
  }
  return id;
 }

提前谢谢你。

1 个答案:

答案 0 :(得分:0)

PreparedStatement的executeUpdate方法确实返回受影响的行数......