2011-10-27 49 views
0

可能重複:
How to get the insert ID in JDBC?使用Statement.RETURN_GENERATED_KEYS例程從表中檢索上次插入的標識ID?

在下面的語句,我怎樣才能獲取最後插入C12的標識值?這是來自JavaDB手冊,但他們沒有提到如何從這個記錄集中檢索最後插入的值。

CREATE TABLE TABLE1 (C11 int, C12 int GENERATED ALWAYS AS IDENTITY) 

Statement stmt = conn.createStatement(); 
stmt.execute(
    "INSERT INTO TABLE1 (C11) VALUES (1)", 
    Statement.RETURN_GENERATED_KEYS); 
ResultSet rs = stmt.getGeneratedKeys(); 

回答

2

下面是一個例子,以獲取生成的密鑰:

ResultSet rs = statement.getGeneratedKeys(); 
if (rs != null && rs.next()) { 
    key = rs.getLong(1); 
} 

PS:一個相關StackOverflow question可以足夠了。

+0

它永遠不會返回'null'。 – BalusC

+0

夠公平的! :-)這是老習慣。 –

+0

@BalusC:只有當驅動程序正確實現時,否則它可能返回null :)順便說一句:如果rs.getLong(1)返回實際的鍵取決於JDBC驅動程序的實現方式:有些數據庫將返回* all *列使用RETURN_GENERATED_KEYS(例如PostgreSQL) –

相關問題