"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso usar efetivamente consultas SQL IN() com o JDBCTemplate do Spring?

Como posso usar efetivamente consultas SQL IN() com o JDBCTemplate do Spring?

Publicado em 2024-11-16
Navegar:188

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

Consultas SQL IN() efetivas com JDBCTemplate do Spring

Você tem uma consulta IN() que atualmente faz com que você construa uma cláusula com múltiplas linhas do código:

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

Você procura uma maneira mais elegante que seja semelhante à substituição de parâmetros de instruções preparadas.

Usando uma fonte de parâmetro

Para alcançar a elegância desejada , você pode usar um parâmetro source:

Set ids = ...;

MapSqlParameterSource parameters = new MapSqlParameterSource();
parameters.addValue("ids", ids);

List foo = getJdbcTemplate().query("SELECT * FROM foo WHERE a IN (:ids)",
     parameters, getRowMapper());

NamedParameterJdbcTemplate

Observe que isso só funciona se getJdbcTemplate() retornar uma instância do tipo NamedParameterJdbcTemplate.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3