Heim  >  Artikel  >  Java  >  Wie kann ich IN()-SQL-Abfragen effektiv mit Springs JDBCTemplate verwenden?

Wie kann ich IN()-SQL-Abfragen effektiv mit Springs JDBCTemplate verwenden?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-25 01:53:10658Durchsuche

How can I effectively use IN() SQL queries with Spring's JDBCTemplate?

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.

ein

Das 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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn