Các phương thức queryforInt / queryforLong trong JdbcTemplate không được chấp nhận trong Spring 3.2. Tôi không thể tìm hiểu lý do tại sao hoặc điều gì được coi là phương pháp hay nhất để thay thế mã hiện có bằng các phương pháp này.
Một phương pháp điển hình:
int rowCount = jscoreJdbcTemplate.queryForInt(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
);
OK, phương thức trên cần được viết lại như sau:
Object[] params = new Object[] {
playerNameKey.toUpperCase(),
teamNameKey.toUpperCase()
};
int rowCount = jscoreJdbcTemplate.queryForObject(
"SELECT count(*) FROM _player WHERE nameKey = ? AND teamClub = ?",
params, Integer.class);
Rõ ràng là việc không dùng nữa này làm cho lớp JdbcTemplate trở nên đơn giản hơn (hay không?). QueryForInt luôn là một phương thức tiện lợi (tôi đoán vậy) và đã có từ lâu. Tại sao nó đã bị loại bỏ. Do đó, mã trở nên phức tạp hơn.
@Deprecated
null
(không phải trường hợp trong ví dụ của bạn). Tôi không tìm thấy cách nào khác ngoài việc sao chép mã kiểm tra rỗng từ queryForInt / Long.