在 JDBC 中插入后获取自动生成的 ID
在 JDBC 中,检索 INSERT 语句生成的 ID 至关重要,特别是在使用自动递增键或序列时。 本指南概述了实现此目的的几种方法。
使用Statement.RETURN_GENERATED_KEYS
:
最直接的方法是利用 JDBC 的 Statement.RETURN_GENERATED_KEYS
标志。 当与 PreparedStatement
或 CallableStatement
一起使用时,这指示驱动程序返回新生成的密钥。
示例:
<code class="language-java">PreparedStatement statement = connection.prepareStatement(SQL_INSERT, Statement.RETURN_GENERATED_KEYS); // ... execute the INSERT statement ... ResultSet generatedKeys = statement.getGeneratedKeys(); if (generatedKeys.next()) { long insertId = generatedKeys.getLong(1); // Get the first generated key }</code>
数据库特定解决方案:
如果您的数据库或驱动程序不支持RETURN_GENERATED_KEYS
,则需要特定于数据库的查询:
CallableStatement
子句的 RETURNING
,或在 INSERT 之后执行 SELECT CURRVAL(sequencename)
查询。SELECT LAST_INSERT_ID()
检索最近插入的 ID。JDBC 驱动程序兼容性:
请记住,对 RETURN_GENERATED_KEYS
的支持可能因 JDBC 驱动程序而异。请查阅驱动程序的文档以确认其功能。 老司机可能需要替代方法。
以上是如何在 JDBC 中执行 INSERT 操作后检索自动生成的 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!