«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как я могу эффективно использовать SQL-запросы IN() с Spring JDBCTemplate?

Как я могу эффективно использовать SQL-запросы IN() с Spring JDBCTemplate?

Опубликовано 16 ноября 2024 г.
Просматривать:307

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

Эффективные SQL-запросы IN() с помощью JDBCTemplate Spring

У вас есть запрос IN(), который в настоящее время требует построения предложения из нескольких строк кода:

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

Вы ищете более элегантный способ, похожий на подстановку параметров подготовленных операторов.

Использование источника параметров

Для достижения желаемой элегантности , вы можете использовать источник параметров:

Set ids = ...;

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

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

NamedParameterJdbcTemplate

Обратите внимание, что это работает только в том случае, если getJdbcTemplate() возвращает экземпляр типа NamedParameterJdbcTemplate.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3