PreparedStatement.RETURN_GENERATED_KEYS无法使用批量插入

时间:2015-10-07 13:39:12

标签: java mysql jdbc

带有返回生成密钥的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));
    }

1 个答案:

答案 0 :(得分:2)

  

有没有办法在插入过程中获取自动生成的值。

没有。在ps.executeBatch()之后,您需要调用ps.getGeneratedKeys()并遍历ResultSet,它将返回。