我想一次插入多条记录,并获取每条记录的id,这是自动递增的。我是用下面的方法来做的,但是得到的是更新的行数,而不是生成的键,在本例中是id。
public int[] addPersons(List<Person> persons)
{
SqlParameterSource[] records= new BeanPropertySqlParameterSource[persons.size()] ;
int i = 0;
for (Person person: persons)
{
records[i]= new BeanPropertySqlParameterSource(person);
i++;
}
SimpleJdbcInsert insertPerson=new SimpleJdbcInsert(dsource).withTableName("PersonTable").usingGeneratedKeyColumns("id");
int [] ids= insertPerson.executeBatch(records);
return ids;
}这里的人就是豆子。那么,对于添加的记录,如何获取自动生成的id键呢?
发布于 2015-02-11 19:12:23
当您调用executeBatch方法时,Spring JDBC不允许检索生成的键。这是因为它在内部调用java.sql.PreparedStatement的executeBatch()方法,该方法只返回受影响的行数。另一种方法是使用executeAndReturnKey方法多次执行insert语句。
https://stackoverflow.com/questions/28293650
复制相似问题