在重构之前,我使用jdbcTemplate、preparedStatementCreator和GeneratedKeyHolder将一行插入到数据库中,并存储插入行的生成id。
假设我的preparedStatements方法是正确的,有人知道我如何返回生成的id值吗?
jdbcTemplate.update(SomePreparedStatementCreator, generatedKeyHolder)
然而,现在我正在尝试使用jdbcTemplate执行更新操作,但是这次是使用preparedStatementSetter。我能看到的唯一方法是jdbcTemplate.update(String sql, PreparedStatementSetter),但是我不确定如何返回生成列的id。
PreparedStatementSetter pss = new PreparedStatementSetter() {
@Override
public void setValues(PreparedStatement preparedStatement)
throws SQLException {
preparedStatement.setString(1, pupil.getFirstname());
preparedStatement.setString(2, pupil.getSurname());
preparedStatement.setString(3, pupil.getGivenName());
preparedStatement.setDate(4, pupil.getDob());
}
};
jdbcTemplate.update("INSERT INTO STUDENTS "+ "(FIRSTNAME, SURNAME, GIVEN_NAME, DOB) VALUES (?,?,?,?)",pss);
假设我的preparedStatements方法是正确的,有人知道我如何返回生成的id值吗?