Sql 从具有多个值的单个insert语句获取生成的键
我使用一个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
插入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.
}