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:
Setids = ...; 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.
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