Effektive IN()-SQL-Abfragen mit Springs JDBCTemplate
Sie haben eine IN()-Abfrage, bei der Sie derzeit eine Klausel mit mehreren Zeilen erstellen des Codes:
StringBuilder jobTypeInClauseBuilder = new StringBuilder(); for(int i = 0; i < jobTypes.length; i++) { Type jobType = jobTypes[i]; if(i != 0) { jobTypeInClauseBuilder.append(','); } jobTypeInClauseBuilder.append(jobType.convert()); }
Sie suchen nach einem eleganteren Weg, der dem Parameter vorbereiteter Anweisungen ähnelt Substitution.
Verwenden einer Parameterquelle
Um die gewünschte Eleganz zu erreichen, können Sie eine Parameterquelle verwenden:
Set<Integer> ids = ...; MapSqlParameterSource parameters = new MapSqlParameterSource(); parameters.addValue("ids", ids); List<Foo> foo = getJdbcTemplate().query("SELECT * FROM foo WHERE a IN (:ids)", parameters, getRowMapper());
NamedParameterJdbcTemplate
Beachten Sie, dass dies nur funktioniert, wenn getJdbcTemplate() eine Instanz von zurückgibt Geben Sie NamedParameterJdbcTemplate.
einDas obige ist der detaillierte Inhalt vonWie kann ich IN()-SQL-Abfragen effektiv mit Springs JDBCTemplate verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!