このようなものが機能するはずです:
// 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"});