0

我发现这种形式的查询对于从数据库调用返回单个值/单行非常方便,如果出现问题,我可以很好地抛出异常。但在我的脑海中,做演员通常是一种不好的做法。

这里的演员是不是很不满意?

String name = (String)getJdbcTemplate().queryForObject(
        sql, new Object[] { custId }, String.class);
4

2 回答 2

1

从 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 或更高版本。

于 2013-03-14T16:25:20.203 回答
0

如果您使用的是 Spring 的最新版本,则不必强制转换,因为它是一个通用方法,并且该方法的签名现在是:

public <T> T queryForObject(String sql, Class<T> requiredType) throws DataAccessException

如果您使用的是旧版本,请转换或升级到最新版本。

于 2013-03-14T16:25:57.913 回答