I metodi queryforInt / queryforLong in JdbcTemplate sono deprecati nella Spring 3.2. Non riesco a scoprire perché o quale sia considerata la migliore pratica per sostituire il codice esistente utilizzando questi metodi.
Un metodo tipico:
int rowCount = jscoreJdbcTemplate.queryForInt(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
);
OK, il metodo sopra deve essere riscritto come segue:
Object[] params = new Object[] {
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
};
int rowCount = jscoreJdbcTemplate.queryForObject(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
params, Integer.class);
Ovviamente questa deprecazione rende la classe JdbcTemplate più semplice (o lo fa?). QueryForInt è sempre stato un metodo conveniente (immagino) ed è in circolazione da molto tempo. Perché è stato rimosso. Di conseguenza, il codice diventa più complicato.
@Deprecated
null
(non è il caso nel tuo esempio). Non ho trovato altro modo che duplicare ora il codice di controllo null da queryForInt / Long.