使用RowMapper实现接口方式
查看Spring JDBC的源码,我们会发先,还提供了如下的方法:
public T queryForObject(String sql, RowMapper rowMapper, Object… args) throws DataAccessException
public List query(String sql, RowMapper rowMapper) throws DataAccessException
这里面需要传过去一个返回实体的实现RowMapper的Mapper类。
但是我们查看JDBC源码时,我们还看到了如下的方法
public T queryForObject(String sql, Class requiredType, Object… args) throws DataAccessException
public List queryForList(String sql, Class elementType) throws DataAccessException
public T queryForObject(String sql, Class requiredType, Object… args) throws DataAccessException 这种反射类型的是将每一个数据列返回为T类型,故出错,因此此方法只支持这种数据类型的(如String等等),不支持自己定义复杂类型的Bean实体。因此可以返回单列的(例如count(*) 和 某一列值等等)。
原文地址:https://www.2cto.com/kf/201501/374254.html