Sesuatu seperti ini seharusnya bekerja:
// 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
}
Saya pikir (saya tidak yakin!) bahwa kunci dikembalikan sesuai urutan pembuatannya. Jadi baris pertama dari ResultSet harus dipetakan ke "item" pertama dari daftar yang sedang Anda proses. Tapi pastikan itu!
Sunting
Jika tidak berhasil, coba tentukan kolom sebenarnya yang menghasilkan nilai:
stmt = c.prepareStatement("INSERT ... ", new String[] {"id"});