SimpleJdbcInsert应用executeAndReturnKeyHolder方法返回主键时需要注意的一个地方
SimpleJdbcInsert使用executeAndReturnKeyHolder方法返回主键时需要注意的一个地方for (String columnName
SimpleJdbcInsert使用executeAndReturnKeyHolder方法返回主键时需要注意的一个地方
for (String columnName : this.getTableColumns()) { ? ? ? ? ? ? // 这里将SimpleJdbcInsert#usingGeneratedKeyColumns方法中所设置的字段去除了 ? ? ? ? ? ? if?(!keys.contains(columnName.toUpperCase())) { ? ? ? ? ? ? ? ? columnCount++; ? ? ? ? ? ? ? ? if?(columnCount > 1) { ? ? ? ? ? ? ? ? ? ? insertStatement.append(", "); ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? insertStatement.append(columnName); ? ? ? ? ? ? } ? ? ? ? }?
看到这里,我也猛然恍然大悟了。既然在INSERT INTO语句中设置了UUID的值,那这里就不需要再使用KeyHolder进行返回了,直接获取就是了。这也是为什么KeyHolder中的getKey()方法的返回类型是Number的原因了,因为通常来说需要Spring返回的就是插入数据库中的自增类型的主键值。