在Java中插入SQL后访问自动增量标识字段

Sea*_*ean 17 java sql

关于如何读取分配给新创建的记录的自动递增标识字段的任何建议java.sql.Statement.executeUpdate

我知道如何在SQL中为几个数据库平台执行此操作,但想知道存在哪些数据库独立接口java.sql,以及人们在跨数据库平台上使用此体验的任何输入.

Dan*_*wak 24

以下snibblet代码应该做ya':

PreparedStatement stmt = conn.prepareStatement(sql, 
                                 Statement.RETURN_GENERATED_KEYS);
// ...

ResultSet res = stmt.getGeneratedKeys();
while (res.next())
    System.out.println("Generated key: " + res.getInt(1));
Run Code Online (Sandbox Code Playgroud)

已知这适用于以下数据库

  • 德比
  • MySQL的
  • SQL Server

对于不起作用的数据库(HSQLDB,Oracle,PostgreSQL等),您需要使用特定于数据库的技巧.例如,在PostgreSQL上,您可以调用SELECT NEXTVAL(...)相关序列.

请注意,参数executeUpdate(...)类似.