转换JDBCTemplate.QueryForObject的返回值

时间:2013-03-14 16:04:23

标签: java casting

我发现这种形式的查询非常方便从数据库调用中返回单个值/单行,如果出现错误,我可以抛出异常。但我觉得做演员表演通常是一种不好的做法。

这里的演员是否赞不绝口?

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

2 个答案:

答案 0 :(得分: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或更高版本。

答案 1 :(得分:0)

如果您使用的是最新版本的Spring,则不应该强制转换,因为它是一种通用方法,现在是signature of the method

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

如果您使用的是旧版本,则可以投射或升级到最新版本。