Os métodos queryforInt / queryforLong em JdbcTemplate estão obsoletos no Spring 3.2. Não consigo descobrir por que ou o que é considerado a prática recomendada para substituir o código existente usando esses métodos.
Um método típico:
int rowCount = jscoreJdbcTemplate.queryForInt(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
);
OK, o método acima precisa ser reescrito da seguinte forma:
Object[] params = new Object[] {
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
};
int rowCount = jscoreJdbcTemplate.queryForObject(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
params, Integer.class);
Obviamente, essa depreciação torna a classe JdbcTemplate mais simples (ou torna?). QueryForInt sempre foi um método de conveniência (eu acho) e já existe há muito tempo. Por que foi removido. O código se torna mais complicado como resultado.
@Deprecated
null
(não é o caso em seu exemplo). Não encontrei outra maneira senão duplicar agora o código de verificação nulo de queryForInt / Long.