相关疑难解决方法(0)

PreparedStatement.executeBatch()之后的getGeneratedKeys()

我想要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();
Run Code Online (Sandbox Code Playgroud)

在这一点上,我希望得到每个PK的生成INSERT,我得到这个SQLServerException:

com.microsoft.sqlserver.jdbc.SQLServerException: The statement must be executed before any results can be obtained.
Run Code Online (Sandbox Code Playgroud)

对于每次执行的插入,我期望获得一行ResultSet,因此我可以生成每个PK.

我怀疑错了吗?难道我做错了什么?可以使用批量执行以不同的方式完成吗?

java sql-server jdbc prepared-statement

12
推荐指数
1
解决办法
5932
查看次数

标签 统计

java ×1

jdbc ×1

prepared-statement ×1

sql-server ×1