Coś takiego powinno działać:
// 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
}
Myślę (nie) Pewnie!), że klucze są zwracane w kolejności ich wygenerowania. Tak więc pierwszy wiersz z zestawu wyników powinien być mapowany na pierwszy „element” z przetwarzanej listy. Ale zweryfikuj to!
Edytuj
Jeśli to nie zadziała, spróbuj określić rzeczywiste kolumny, dla których generowane są wartości:
stmt = c.prepareStatement("INSERT ... ", new String[] {"id"});