我发现这种形式的查询对于从数据库调用返回单个值/单行非常方便,如果出现问题,我可以很好地抛出异常。但在我的脑海中,做演员通常是一种不好的做法。
这里的演员是不是很不满意?
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
如果您使用的是旧版本,请转换或升级到最新版本。