#java #spring #spring-boot #spring-mvc #jdbctemplate
#java #весна #spring-boot #spring-mvc #jdbctemplate
Вопрос:
int[][] updateCounts = jdbcTemplate.batchUpdate(QueryConstant.UPDATE_MERCHANT_STATUS,merchantList,1,
new ParameterizedPreparedStatementSetter<Merchant>() {
public void setValues(PreparedStatement ps, Merchant merchant)
throws SQLException {
ps.setString(1, merchant.getMerchantId());
}
});
int a=0;
for(int[] i : updateCounts) {
System.out.println(updateCounts.length ":COUNT:" i[a]);
}
System.out.println(updateCounts[1][0] ":test:" updateCounts[0][0]);
Запрос, используемый в коде для обновления: update merchant set flag=’P’, где merchant_id в(‘1111′,’2222’,»);
У меня есть 3 разных параметра, и только две строки получают обновление, поскольку последнее значение пустое.
Я получаю sysout следующим образом: 3: COUNT:-2 3:COUNT:-2 3:COUNT:-2 -2:test:-2
Как я могу получить количество только затронутых (обновленных) строк?
Ответ №1:
При пакетном использовании подготовленного оператора -2 указывает, что операция выполнена успешно, но не удалось определить количество затронутых строк.
Поскольку вы используете размер пакета 1, нужен ли вам пакет в первую очередь? Можно использовать либо оператор, либо пакетную обработку можно игнорировать.