Методи queryforInt / queryforLong у JdbcTemplate застаріли навесні 3.2. Я не можу з’ясувати, чому або що вважається найкращою практикою заміни існуючого коду за допомогою цих методів.
Типовий метод:
int rowCount = jscoreJdbcTemplate.queryForInt(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
);
ОК, описаний вище метод потрібно переписати так:
Object[] params = new Object[] {
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
};
int rowCount = jscoreJdbcTemplate.queryForObject(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
params, Integer.class);
Очевидно, ця депресія робить клас JdbcTemplate простішим (чи робить це?). QueryForInt завжди був зручним методом (я думаю) і існує вже давно. Чому його видалено. Код в результаті ускладнюється.
@Deprecated
null
(не так у вашому прикладі). Я не знайшов іншого способу, як дублювати код нульової перевірки з queryForInt / Long.