可能重複的ID:
How to get the insert ID in JDBC?的MySQL和Java的 - 獲取最後插入值(JDBC)
嗨,我使用JDBC通過對數據庫連接的Java應用。
現在,我做一些插入查詢,我需要得到最後插入的值的ID(所以,在stmt.executeUpdate
之後)。
我不需要類似SELECT id FROM table ORDER BY id DESC LIMIT 1
,因爲我可能有併發問題。
我只需要檢索與最後一個插入關聯的id(關於我的Statement的實例)。
我嘗試這樣做,但看來它不會對JDBC工作:每risultato = -1
時間
public Integer insertQueryGetId(String query) {
Integer numero=0;
Integer risultato=-1;
try {
Statement stmt = db.createStatement();
numero = stmt.executeUpdate(query);
ResultSet rs = stmt.getGeneratedKeys();
if (rs.next()){
risultato=rs.getInt(1);
}
rs.close();
stmt.close();
} catch (Exception e) {
e.printStackTrace();
errore = e.getMessage();
risultato=-1;
}
return risultato;
}
其實,我也得到java.sql.SQLException: Generated keys not requested. You need to specify Statement.RETURN_GENERATED_KEYS to Statement.executeUpdate() or Connection.prepareStatement().
我怎樣才能解決這個問題呢?由於人們#1 :)
看到我的問題:http://stackoverflow.com/questions/4224228/preparedstatement-with-statement-return-generated-keys – 2010-11-22 14:55:30
重複[如何獲取插入ID在JDBC?](http:// stackoverflow .com/questions/1915166/how-to-get-the-insert-id-in-jdbc) – BalusC 2010-11-22 14:59:01