Noget som dette burde virke:
// 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
}
Jeg tror (jeg er ikke). sikker!), at nøglerne returneres i den rækkefølge, de blev genereret. Så den første række fra ResultSet'et skal knyttes til det første "element" fra den liste, du behandler. Men bekræft det!
Rediger
Hvis det ikke virker, så prøv at angive de faktiske kolonner, som værdierne genereres for:
stmt = c.prepareStatement("INSERT ... ", new String[] {"id"});