2013-03-14 47 views
0

我發現這種形式的查詢非常方便從數據庫調用返回一個單一的值/單行,我很好,拋出一個異常,如果有什麼問題。但我認爲做演員通常是一種不好的做法。Casting返回值爲JDBCTemplate.QueryForObject

這裏的演員是不是皺起了眉頭?

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

回答

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

0

你不應該有,投,如果你使用的是最新的春季版本,因爲它是一個通用的方法和signature of the method現在是:

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

如果您使用的是舊版本,然後或者投射,或者升級到最新版本。