Есть метод, который обновляет данные в БД по HashMap
public void setHashMapFieldsDB(HashMap<Integer, String> hashMap){
String SQL = "UPDATE oc_product_description SET name = ? WHERE language_id = 3 AND product_id = ?";
for (Map.Entry entry : hashMap.entrySet()) {
jdbcTemplateObject.update(SQL, entry.getValue(), entry.getKey());
}
}
Подскажите, как его переделать, чтоб sql-запросы выполнялись в пакете? С помощью BatchUpdate или другим способом.
Вот такой вариант
public void setHashMapFieldsDB(HashMap<Integer, String> hashMap){
String SQL = "UPDATE oc_product_description SET name = ? WHERE language_id = 3 AND product_id = ?";
List<Map.Entry<Integer, String>> data = new ArrayList<>(hashMap.entrySet());
jdbcTemplateObject.batchUpdate(SQL, new BatchPreparedStatementSetter() {
@Override
public void setValues(PreparedStatement preparedStatement, int i) throws SQLException {
preparedStatement.setString(1, data.get(i).getValue());
preparedStatement.setInt(2, data.get(i).getKey());
}
@Override
public int getBatchSize() {
return data.size();
}
});
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники