Los métodos queryforInt / queryforLong en JdbcTemplate están obsoletos en Spring 3.2. No puedo averiguar por qué o qué se considera la mejor práctica para reemplazar el código existente utilizando estos métodos.
Un método típico:
int rowCount = jscoreJdbcTemplate.queryForInt(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
);
OK, el método anterior debe reescribirse de la siguiente manera:
Object[] params = new Object[] {
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
};
int rowCount = jscoreJdbcTemplate.queryForObject(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
params, Integer.class);
Obviamente, esta desaprobación hace que la clase JdbcTemplate sea más simple (¿o no?). QueryForInt siempre fue un método de conveniencia (supongo) y ha existido durante mucho tiempo. ¿Por qué se ha eliminado? Como resultado, el código se vuelve más complicado.
@Deprecated
null
(no es el caso en su ejemplo). No encontré otra forma que duplicar ahora el código de verificación nulo de queryForInt / Long.