Metody queryforInt / queryforLong w JdbcTemplate są przestarzałe w wersji Spring 3.2. Nie mogę dowiedzieć się, dlaczego lub co jest uważane za najlepszą praktykę zastępowania istniejącego kodu przy użyciu tych metod.
Typowa metoda:
int rowCount = jscoreJdbcTemplate.queryForInt(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
);
OK powyższą metodę należy przepisać w następujący sposób:
Object[] params = new Object[] {
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
};
int rowCount = jscoreJdbcTemplate.queryForObject(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
params, Integer.class);
Oczywiście to wycofanie sprawia, że klasa JdbcTemplate jest prostsza (czy też robi?). QueryForInt zawsze była wygodną metodą (chyba) i istnieje od dawna. Dlaczego został usunięty. W rezultacie kod staje się bardziej skomplikowany.
@Deprecated
null
(nie ma to miejsca w Twoim przykładzie). Nie znalazłem innego sposobu niż zduplikowanie teraz zerowego kodu kontrolnego z queryForInt / Long.