有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

PreparedStatement之后的java getGeneratedKeys()。executeBatch()

我想使用PreparedStatementINSERT几行:

ps = con.prepareStatement(query,PreparedStatement.RETURN_GENERATED_KEYS);

for(Element e:listOfElements){
    ps.setString(1,this.col_val_1);
    ps.setString(2,this.col_val_2);
    ps.setInt(3,this.col_val_3);

    ps.addBatch();
}

ps.executeBatch();
ResultSet rs = ps.getGeneratedKeys();

此时,当我希望为每个INSERT生成PK时,我得到这个SQLServerException

com.microsoft.sqlserver.jdbc.SQLServerException: The statement must be executed before any results can be obtained.

我希望得到一个结果集,每个插入都有一行,这样我就可以生成每个PK

我预期错了吗?我做错什么了吗?可以使用批处理执行以不同的方式完成吗


共 (1) 个答案