Нещо подобно трябва да работи:
// 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
}
Мисля (азне сигурни!), че ключовете се връщат в реда, в който са били генерирани. Така че първият ред от ResultSet трябва да съответства на първия "елемент" от списъка, който обработвате. Но проверете това!
Редактиране
Ако това не работи, опитайте да посочите действителните колони, за които се генерират стойностите:
stmt = c.prepareStatement("INSERT ... ", new String[] {"id"});