所有变体都有效,问题是优化。
单个参数:
namedParameterJdbcTemplate.queryForObject(sql, Collections.singletonMap("id", id), new ClientMapper())
或
namedParameterJdbcTemplate.queryForObject(sql, new MapSqlParameterSource("id", id), new ClientMapper());
多个参数:
namedParameterJdbcTemplate.update(
sql,
new MapSqlParameterSource("view", view)
.addValue("id", id)
);
或
namedParameterJdbcTemplate.update(sql, new HashMap<String, Object>() {
{
put("view", view);
put("id", id);
}
});
答案 0 :(得分:1)
始终查看源代码:
@Override
public int update(String sql, Map<String, ?> paramMap) throws DataAccessException {
return update(sql, new MapSqlParameterSource(paramMap));
}
因此,使用一个而不是另一个应该无关紧要:)