この形式のクエリは、データベース呼び出しから単一の値/単一の行を返すのに非常に便利であり、何か問題がある場合は例外をスローしても問題ありません。しかし、キャストを行うことは一般的に悪い習慣であると頭の中で考えています。
ここのキャストは眉をひそめていますか?
String name = (String)getJdbcTemplate().queryForObject(
sql, new Object[] { custId }, String.class);
Spring 3.1 以降、JdbcTemplateはqueryForObjectでジェネリックと可変引数を使用できます。
String name = getJdbcTemplate().queryForObject(sql, String.class, custId);
Spring 3.1 より前は、これは getSimpleJdbcTemplate() を通じて利用可能でした
String name = getSimpleJdbcTemplate().queryForObject(sql, String.class, custId);
編集:
これには JDK 1.5 以降が必要です。
Spring の最近のバージョンを使用している場合は、キャストする必要はありません。これはジェネリック メソッドであり、メソッドのシグネチャが次のようになっているためです。
public <T> T queryForObject(String sql, Class<T> requiredType) throws DataAccessException
古いバージョンを使用している場合は、キャストするか、最新バージョンにアップグレードしてください。