MapSqlParameterSourceはマップ上の単なるラッパーです。マップの代わりにMapSqlParameterSourceを使用する利点は何ですか?mapsqlparametersourceとjava.util.mapとの比較
private final Map<String, Object> values = new LinkedHashMap<String, Object>();
実装を提供したマップや、スプリングを使用して、かなりの利点は、実際にはありません。
public int countOfActorsByFirstName(String firstName) {
String sql = "select count(*) from T_ACTOR where first_name = :first_name";
SqlParameterSource namedParameters = new MapSqlParameterSource("first_name", firstName);
return this.namedParameterJdbcTemplate.queryForObject(sql, namedParameters, Integer.class);
}
public int countOfActorsByFirstName(String firstName) {
String sql = "select count(*) from T_ACTOR where first_name = :first_name";
Map<String, String> namedParameters = Collections.singletonMap("first_name", firstName);
return this.namedParameterJdbcTemplate.queryForObject(sql, namedParameters, Integer.class);
}
を使用しないための単なる好みの問題です。ジェネリックをサポートしていないJavaバージョンを使用している可能性があった時代から残っているのは残念です。 – Kayaman
javadocが示しているように、パラメータを埋める流暢なAPI、パラメータのSQL型を指定することが可能です。 –