sql - 检索刚刚插入 Java DB (Derby) 数据库的记录 ID

标签 sql jdbc javadb

我正在使用 JDBC 连接到 Java DB 数据库,并希望检索插入的最后一条记录的 id(自动递增)。

我看到这是一个常见问题,但我看到 solutions使用例如 MS SQL Server,Java DB 的等价物是什么?

最佳答案

无需为此使用 DBMS 特定的 SQL。

就是这样getGeneratedKeys()是为了。

preparing your statement您传递自动生成的列的名称,然后您可以使用 getGeneratedKeys()

PreparedStatement pstmt = connection.prepareStatement(
     "insert into some_table (col1, col2, ..) values (....)", 
      new String[] { "ID_COLUMN"} ); 

pstmt.executeUpdate();

ResultSet rs = pstmt.getGeneratedKeys(); // will return the ID in ID_COLUMN

请注意,在这种情况下(在 Derby 和许多其他 DBMS 中),列名称区分大小写。new String[] { "ID_COLUMN"}new String[] { "id_column"} 不同

或者,您也可以使用:
connection.prepareStatement("INSERT ...", PreparedStatement.RETURN_GENERATED_KEYS);

关于sql - 检索刚刚插入 Java DB (Derby) 数据库的记录 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4894754/

相关文章:

mysql - 自动增量已自动重置回 1

java - Hsql - 如果在 spring boot 应用程序中不存在则创建模式

Java JDBC 返回错误的生成键

eclipse - 如何在Eclipse Web项目中安装JDBC驱动程序而不面临java.lang.ClassNotFoundException

JavaDB/Hibernate/Swing 自动排序

java - "Schema name-of-schema does not exist"与 Java Derby

sql - postgres中的两个外键

mysql - 在 View 中对项目编号进行排名,MYSQL

mysql:每个类别求和 3 条记录

PHP 和数据库之间的 Java 桥梁