Något sådant här borde fungera:
// tell the driver you want the generated keys
stmt = c.prepareStatement("INSERT ... ", Statement.RETURN_GENERATED_KEYS);
stmt.executeBatch();
// now retrieve the generated keys
ResultSet rs = stmt.getGeneratedKeys();
while (rs.next()) {
int id = rs.getInt(1);
.. save the id somewhere or update the items list
}
Jag tror (jag är inte säker!) att nycklarna returneras i den ordning de genererades. Så den första raden från ResultSet bör mappas till det första "objektet" från listan du bearbetar. Men verifiera det!
Redigera
Om det inte fungerar, försök att ange de faktiska kolumner som värdena genereras för:
stmt = c.prepareStatement("INSERT ... ", new String[] {"id"});