我想INSERT
使用几行PreparedStatement
:
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();
此时,当我希望为每个生成 PK 时INSERT
,我得到了这个SQLServerException
:
com.microsoft.sqlserver.jdbc.SQLServerException: The statement must be executed before any results can be obtained.
我希望为每个执行的插入获得一个包含一行的 ResultSet,这样我就可以生成每个 PK。
我期待错了吗?难道我做错了什么?可以使用批处理执行以不同的方式完成吗?