我正在使用 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/