Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 从具有多个值的单个insert语句获取生成的键_Sql_Sql Server_Jdbc - Fatal编程技术网

Sql 从具有多个值的单个insert语句获取生成的键

Sql 从具有多个值的单个insert语句获取生成的键,sql,sql-server,jdbc,Sql,Sql Server,Jdbc,我使用一个insert语句将多行插入到一个表中。该表有一个自动递增字段作为主键 类似这样:插入MyTable值(?、、?、?)、(?、?、?、?)、(?、?、?)、(?、?、?)、(?、?、?) StringJoiner sj=新的StringJoiner(“,”); 对于(inti=0;i虽然这是一个老问题,但我希望它能帮助到别人 PreparedStatement pre = connection.prepareStatement("SQL", PreparedStatement.RETUR

我使用一个insert语句将多行插入到一个表中。该表有一个自动递增字段作为主键

类似这样:
插入MyTable值(?、、?、?)、(?、?、?、?)、(?、?、?)、(?、?、?)、(?、?、?)

StringJoiner sj=新的StringJoiner(“,”);

对于(inti=0;i虽然这是一个老问题,但我希望它能帮助到别人

PreparedStatement pre = connection.prepareStatement("SQL", PreparedStatement.RETURN_GENERATED_KEYS);
for(Salesman salesman: salesmen) {
    pre.setString(i++, ...);
    pre.setString(i++, ...);
    ....
    pre.addBatch(); // Add this
}
pre.executeBatch(); // Add this
ResultSet rs = pre.getGeneratedKeys();
while(rs.next()) {
    int id = rs.getInt(1); // This should contain the id of the inserts in order.
}

我也陷入了同样的困境你解决了吗?
PreparedStatement pre = connection.prepareStatement("SQL", PreparedStatement.RETURN_GENERATED_KEYS);
for(Salesman salesman: salesmen) {
    pre.setString(i++, ...);
    pre.setString(i++, ...);
    ....
    pre.addBatch(); // Add this
}
pre.executeBatch(); // Add this
ResultSet rs = pre.getGeneratedKeys();
while(rs.next()) {
    int id = rs.getInt(1); // This should contain the id of the inserts in order.
}