Něco takového by mělo fungovat:
// 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
}
Myslím (nejsem ne jistě!), že klíče jsou vráceny v pořadí, v jakém byly vygenerovány. Takže první řádek z ResultSet by měl mapovat na první "položku" ze seznamu, který zpracováváte. Ale ověřte si to!
Upravit
Pokud to nefunguje, zkuste zadat skutečné sloupce, pro které jsou hodnoty generovány:
stmt = c.prepareStatement("INSERT ... ", new String[] {"id"});