由于对复制粘贴完整代码的访问权限有限,请使用我有限的代码信息。
@Repository("BaseDao")
public class BaseDaoImpl implements BaseDao{
public NamedParameterJdbcTemplate namedJdbcTemplate;
@Autowired
public void setDataSource(DataSource dataSource){
this.namedJdbcTemplate = new NamedParameterJdbcTemplate(dataSource);
}
}
@Repository("WelcomeDao")
public class WelcomeDaoImpl extends BaseDaoImpl implements WelcomeDao {
public List<String> getFunctionTypes() {
SqlParameterSource paramSource = new MapSqlParameterSource();
paramSource .addValue("function_id", "FRS047");
paramSource .addValue("user_id", "DWHJAVA");
String query = "select distinct FUNCTION_TYPE from EX_VIEW where FUNCTION_ID = :function_id and USER_ID = :user_id ";
List<String> funTypes = this.namedJdbcTemplate.queryForList(query, paramSource,String.class);
return funTypes;
}
}
我也尝试用普通地图替换SqlParameterSource但没有运气!!
我无法通过执行上述查询获得结果,而如果我用查询中的硬编码值替换命名参数,则能够检索结果!!
请帮助我改变参数的方式有什么问题?
我很沮丧,最后想放弃NamedParameterJdbcTemplate ..