带有返回生成密钥的Prepared语句返回单个插入的自动生成密钥,但不适用于批量插入。有没有办法在插入过程中获取自动生成的值。
PreparedStatement ps = connection.prepareStatement("insert into table() values()",PreparedStatement.RETURN_GENERATED_KEYS);
{
ps.addBatch();
}
ps.executeBatch();
ResultSet rs = ps.getGeneratedKeys();
List<Long> ids = new ArrayList<Long>();
while(rs.next()) {
ids.add(rs.getLong(1));
}
答案 0 :(得分:2)
有没有办法在插入过程中获取自动生成的值。
没有。在ps.executeBatch()
之后,您需要调用ps.getGeneratedKeys()
并遍历ResultSet,它将返回。