Die queryforInt / queryforLong-Methoden in JdbcTemplate sind in Spring 3.2 veraltet. Ich kann nicht herausfinden, warum oder was als die beste Vorgehensweise angesehen wird, um vorhandenen Code mit diesen Methoden zu ersetzen.
Eine typische Methode:
int rowCount = jscoreJdbcTemplate.queryForInt(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
);
OK, die obige Methode muss wie folgt neu geschrieben werden:
Object[] params = new Object[] {
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
};
int rowCount = jscoreJdbcTemplate.queryForObject(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
params, Integer.class);
Offensichtlich macht diese Ablehnung die JdbcTemplate-Klasse einfacher (oder doch?). QueryForInt war immer eine bequeme Methode (denke ich) und gibt es schon lange. Warum wurde es entfernt? Der Code wird dadurch komplizierter.
@Deprecated
null
(in Ihrem Beispiel nicht der Fall). Ich habe keine andere Möglichkeit gefunden, als jetzt den Nullprüfcode von queryForInt / Long zu duplizieren.