在namedParameterJdbcTemplate参数中使用什么更好

时间:2016-03-01 11:13:00

标签: java spring jdbc java-8

所有变体都有效,问题是优化。

单个参数:

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);
    }
});

1 个答案:

答案 0 :(得分:1)

始终查看源代码:

@Override
public int update(String sql, Map<String, ?> paramMap) throws DataAccessException {
    return update(sql, new MapSqlParameterSource(paramMap));
}

因此,使用一个而不是另一个应该无关紧要:)