在 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中文網其他相關文章!