Iets als dit zou moeten werken:
// 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
}
Ik denk (ik ben niet zeker!) dat de sleutels worden geretourneerd in de volgorde waarin ze zijn gegenereerd. Dus de eerste rij van de ResultSet moet worden toegewezen aan het eerste "item" uit de lijst die u aan het verwerken bent. Maar verifieer dat!
Bewerken
Als dat niet werkt, probeer dan de werkelijke kolommen te specificeren waarvoor de waarden worden gegenereerd:
stmt = c.prepareStatement("INSERT ... ", new String[] {"id"});