Spring利用GeneratedKeyHolder,提供了一个可以返回新增记录对应主键值的方法:
int update(String sql, SqlParameterSource paramSource, KeyHolder generatedKeyHolder)
Spring为KeyHolder接口指代了一个通用的实现类GeneratedKeyHolder,该类返回新增记录时的自增长主键值。假设我们希望在新增数据 后,将主键值加载到对象中,则可以按以下代码进行调整:
public static <T extends MyTemplate> void addConcludesId(String sql, T t) {
SqlParameterSource ps = new BeanPropertySqlParameterSource(t);
KeyHolder keyHolder = new GeneratedKeyHolder();
jdbcHelper.update(sql, ps, keyHolder);
int id = keyHolder.getKey().intValue(); // 返回主键值
System.out.println(id);
t.setId(id);
}