: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.
実行された挿入ごとに1行のResultSetを取得することを期待していたので、各PKを生成できました。
私は間違っていると思っていますか?私は何か間違ったことをしていますか?バッチ実行を使用して別の方法で実行できますか?